Programmieren
-
-
ahhhh, rufolso du Totengräber! Die Posts sind über 5 Monate alt
und ja, Java ist recht gut und einfach zu lernen, wen man weis, wie programmieren normaler weise ist. Außerdem muss man dieses konstructor Zeug lernen, was net einfach ist, wen man von einer anfängerfreundlichesprache wie die nächsten beiden kommt:
-Eos(einfache objekt orientieresprache) selber ist eine super einfach, auf deutsche gehaltene Anfänger Sprache, wo man Objekte in ein Koordinaten System pogrammiert.
-VBA(Visial Basic for Ablications) ist bei einem Normalem Office(nicht Starter!) dabei und ist auch net so komplex...
So und nun mal ein Beispiel pogramm von Java: Ein Förster Akten tool:
Java
Alles anzeigenpackage com.gmail.lichtenrider98.LichtenLP.Foerster.Akten.Tool; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class Main { static JFrame Main = new JFrame("Förster Akten Tool"); //Text Felder static JTextField Foerster=new JTextField("Deinen Name eintragen"); static JTextField F1T=new JTextField("Täter"); static JTextField F3T1=new JTextField("Logs"); static JTextField F3T2=new JTextField("Mushroom"); static JTextField F4T=new JTextField("Logs"); //Variablen static String FoersterName; static String Taeter; static float LogsB; static float Logs; static float Mush; static int Geld=0; //static int Jail=0; //StartFenster und Fenster 1 public static void main(String[] args){ //1.Fenster: Main.setVisible(true); Main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Main.setSize(300,200); //Eingabe des Förster namens: Foerster.setEditable(true); JButton MainB= new JButton("Bestättigen"); ActionListener MainA = new ActionListener(){ public void actionPerformed(ActionEvent arg0) { FoersterName = Foerster.getText(); System.out.println(FoersterName); Main.setVisible(false); JFrame F1=new JFrame("Täter Name eingeben"); F1.setVisible(true); F1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); F1.setSize(300,200); F1T.setEditable(true); JButton F1B = new JButton("Täter Bestättigen"); ActionListener F1A = new ActionListener(){ public void actionPerformed(ActionEvent e) { F2(); } }; F1B.addActionListener(F1A); F1T.addActionListener(F1A); JPanel F1P=new JPanel(); F1P.add(F1B); F1.add(F1T); F1.add(F1P); F1.setLayout(new GridLayout(2,1)); } }; MainB.addActionListener(MainA); Foerster.addActionListener(MainA); JPanel MainP=new JPanel(); MainP.add(MainB); Main.add(Foerster); Main.add(MainP); Main.setLayout(new GridLayout(2,1)); } //Fenster 2 private static void F2(){ Taeter = F1T.getText(); System.out.println(Taeter); JFrame F2=new JFrame("Tat wählen"); F2.setVisible(true); F2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); F2.setSize(300,200); JButton F2B1 = new JButton("Freebuild+NewHeaven"); ActionListener F2A1 = new ActionListener(){ public void actionPerformed(ActionEvent e) { F3(); } }; F2B1.addActionListener(F2A1); JButton F2B2 = new JButton("Baumfarm"); ActionListener F2A2 = new ActionListener(){ public void actionPerformed(ActionEvent e) { F4(); } }; F2B2.addActionListener(F2A2); JPanel F2P=new JPanel(); F2P.add(F2B1); F2P.add(F2B2); F2.add(F2P); } private static void F3(){ System.out.println("Freebuild"); JFrame F3=new JFrame("Logs Zahlen eingeben, wen nix 0"); F3.setVisible(true); F3.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); F3.setSize(400,200); F3T1.setEditable(true); F3T2.setEditable(true); Logs=0; LogsB=0; Mush=0; JButton F3B = new JButton("Straffe berechnen"); ActionListener F3A = new ActionListener(){ public void actionPerformed(ActionEvent e) { String LogsS=F3T1.getText(); Logs = Float.valueOf(LogsS); String MushS=F3T2.getText(); Mush = Float.valueOf(MushS); F5(); } }; F3B.addActionListener(F3A); JPanel F3P=new JPanel(); F3P.add(F3B); F3.add(F3T1); F3.add(F3T2); F3.add(F3P); F3.setLayout(new GridLayout(3,1)); } private static void F4(){ System.out.println("Baumfarm"); JFrame F4=new JFrame("Logs Zahlen eingeben, wen nix 0"); F4.setVisible(true); F4.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); F4.setSize(400,200); F4T.setEditable(true); JButton F4B = new JButton("Straffe berechnen"); Logs=0; LogsB=0; Mush=0; ActionListener F4A = new ActionListener(){ public void actionPerformed(ActionEvent e) { String LogsBS=F4T.getText(); LogsB = Float.valueOf(LogsBS); F5(); } }; F4B.addActionListener(F4A); JPanel F4P=new JPanel(); F4P.add(F4B); F4.add(F4T); F4.add(F4P); F4.setLayout(new GridLayout(2,1)); } private static void F5(){ System.out.println(LogsB); System.out.println(Logs); System.out.println(Mush); float Jail=0; int Geld=0; if(Logs<4){ } else{ if(Logs>4){ int Preis=150; if(Logs<10){ Geld = (int) (Logs*Preis); } if(Logs>9){ int Geld1 = (int) (Logs*Preis); Jail= (float) (Geld1/200); Geld=(int) (Logs*Preis); } } } if(LogsB<4){ } else{ if(LogsB>4){ int Preis=250; if(Logs<10){ Geld = (int) (LogsB*Preis); } if(LogsB>9){ int Geld1 = (int) (LogsB*Preis); Jail= (float) (Geld1/200+Jail); Geld=(int) (Logs*Preis)+Geld; } } } if(Mush<4){ } else{ if(Mush>4){ int Preis=100; if(Mush<20){ Geld = (int) (Mush*Preis); } if(Mush>19){ int Geld2 = (int) (LogsB*Preis); Jail= (float) (Geld2/200+Jail); Geld=(int) (Logs*Preis)+Geld; } } } System.out.println(Geld); System.out.println(Jail); if(Geld==0){ JFrame Nix=new JFrame("Es gibt keine Akte..."); Nix.setVisible(true); Nix.setSize(300,200); Nix.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JTextField NixT= new JTextField("Es gibt keine Akte!"); NixT.setEditable(false); Nix.add(NixT); } else{ //Freebuild if(LogsB<4){ //ohne Pilz if(Mush<4){ //ohne Jail if(Jail==0){ JFrame Akte=new JFrame("Die feritge Akte:"); Akte.setVisible(true); Akte.setSize(300,200); Akte.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JTextArea AkteT= new JTextArea(); AkteT.append("Täter: "+Taeter+ "\n"+"Förster(in): "+FoersterName+ "\n"+"Logs: "+Logs+ "\n"+"Strafe: "+Geld+"m + Verwarnung"); AkteT.setEditable(false); Akte.add(AkteT); } //mit Jail else{ JFrame Akte=new JFrame("Die feritge Akte:"); Akte.setVisible(true); Akte.setSize(300,200); Akte.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JTextArea AkteT= new JTextArea(); AkteT.append("Täter: "+Taeter+ "\n"+"Förster(in): "+FoersterName+ "\n"+"Logs: "+Logs+ "\n"+"Strafe: "+Geld+"m + "+Jail+"min Jail"); AkteT.setEditable(false); Akte.add(AkteT); } } //mit Pilz else{ //ohne Jail if(Jail==0){ JFrame Akte=new JFrame("Die feritge Akte:"); Akte.setVisible(true); Akte.setSize(300,200); Akte.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JTextArea AkteT= new JTextArea(); AkteT.append("Täter: "+Taeter+ "\n"+"Förster(in): "+FoersterName+ "\n"+"Logs: "+Logs+" Mushroom: "+Mush+ "\n"+"Strafe: "+Geld+"m + Verwarnung"); AkteT.setEditable(false); Akte.add(AkteT); } //mit Jail else{ JFrame Akte=new JFrame("Die feritge Akte:"); Akte.setVisible(true); Akte.setSize(300,200); Akte.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JTextArea AkteT= new JTextArea(); AkteT.append("Täter: "+Taeter+ "\n"+"Förster(in): "+FoersterName+ "\n"+"Logs: "+Logs+" Mushroom: "+Mush+ "\n"+"Strafe: "+Geld+"m + "+Jail+"min Jail"); AkteT.setEditable(false); Akte.add(AkteT); } } } //Baumfarm else{ //ohne Jail if(Jail==0){ JFrame Akte=new JFrame("Die feritge Akte:"); Akte.setVisible(true); Akte.setSize(300,200); Akte.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JTextArea AkteT= new JTextArea(); AkteT.append("Täter: "+Taeter+ "\n"+"Förster(in): "+FoersterName+ "\n"+"Ort: Baumfarm"+ "\n"+"Logs: "+LogsB+ "\n"+"Strafe: "+Geld+"m + Verwarnung"); AkteT.setEditable(false); Akte.add(AkteT); } //mit Jail else{ JFrame Akte=new JFrame("Die feritge Akte:"); Akte.setVisible(true); Akte.setSize(300,200); Akte.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JTextArea AkteT= new JTextArea(); AkteT.append("Täter: "+Taeter+ "\n"+"Förster(in): "+FoersterName+ "\n"+"Ort: Baumfarm"+ "\n"+"Logs: "+LogsB+ "\n"+"Strafe: "+Geld+"m + "+Jail+"min Jail"); AkteT.setEditable(false); Akte.add(AkteT); } } } } }
//edit: @giga: na logo, habe auch schon mal einen mod geschrieben und 2 Plugins
-
-
-
Minecraft wurde ja angeblich in Java programmiert.
Minecraft wurde in Java programmiert...Das ist kein geheimnis -
Ist eigentlich gut aufgebaut.
Nur ein Tipp. Ich würds immer einrücken
Aber wenns funztz Habs nicht getestet, aber gehe ich mal von auses geht, ist auch eigentlich eingerückt, hat aber entweder das Forum beim Verarbeiten, ie beim einfügen oder Windows beim Copieren net hingepracht... egal
der einzige Fehler am Pogramm ist, das es die jailzeit nicht wie in den Försterregeln rundet, aber dafür mit einer kommastelle ausgibt
-
-
Normal müssen ints nicht nach double explizit gecasted werden, da double einen größeren Zahlenbereich als int hat ^
Klar, aber zum außwerten von Strings ist double besser, und bei der Jailzeit ist es praktisch, weil eine nach Kommastelle dafür benötigt wird(und int ganzzahlig ist) -
Ich meine:
Warum alles andere als double deklarieren aber die Geldstrafe als int.
V.A. double Logs, LogsB und Mush, als ob jemand 0,264826493 Pilze abbauen würde. Verstehst du, was ich meine ?;) Wenn nicht 100% unbedingt ein double unvermeidlich und nötig ist, gibt es kleinere Varianten die den Speicher mehr schonen als double (außerdem sieht so ein double der maximal mit ~200 (Mehr werden es ja bei den Förstern nicht sein einfach ziemlich doof aus. Gerade, weil da ein int oder gar ein short (-32767 bis 32767) ausreichen würde. Die meisten Sachen lassen sich problemlos mit int realisieren (-2147483648 bis 2147483647).
Das ist Speicher der da verschenkt wird, und wenn du wirklich höchstens eine Nachkommastelle hast dann reicht float (32bit) völlig aus (double: 64bit).
Das ist zwar heutzutage ein immer weniger gravierendes Problem, aber da Java das Programm hin und wieder mal mit einer OutOfMemory-Exception abschießt, sollte man Redundanzen vermeiden.Protipp:
Du kannst, da Jailstrafen aufgerundet werden (soweit ich weiß), komplett auf Gleitkommazahlen verzichten. Du nimmst einfach den errechneten Jailzeit-Wert und modulo'ierst (modulierst... modulorierst... whatever) ihn mit 2:Codeint jailZeit; if (errechneJailzeit()%2 == 1) //Habe errechneJailzeit einfach mal eingesetzt. Aufrunden, da Strafzeit eine halbe Minute beinhält
Modulo ist ein Operator der den Rest eines Bruches zurückgibt ( 1%2 == 1, da beim Bruch 1 übrig bleibt und nicht durch 2 geteilt werden kann). Dieser Bruch bleibt Ganzzahlig und auch das Ergebnis ist ganzzahlig.
-
Pogramm aktualisiert!
Die Sache mit den Logs, LogsB und Mush ließ sich leider nicht mit int machen, jedoch habe einfach dann nun float genohmen. Außerdem ist mir noch ein Fehler bei der Aktenausgabe aufgefallen: Und zwar habe ich das TextField Förster und der Text dieses TextFields wird schon früh am Anfang in die Variable FörsterName gespeichert. Bei einer Variante der Akte(Freebuild, Mush und Logs, ohne Jail) stand noch Förster, was einen Netten, jedoch nicht sinigen Text ausgab...
Aber das mit dem mudulieren verstehe ich net...
PS: nun kann man leicht sehen wo eingerükt ist, blos net so gut wie in eclips
-
Zuerst einmal: Wie kompliziert ist bitte der Package-Name?
Das Programm man auch einfacher machen: Einfach für alles ein TextField hinklatschen, ein Label als Bezeichnung, was da rein muss und dann einen einzigen Button, mit dem man alles berechnet. Außerdem schließen sich die einzelnen Dialoge nicht automatisch ._.
-
-
Lol, mir ist auch gerade der Package-Name aufgefallen
Normalerweise sollte man sowas wie de.domain.produkt oder de.domain.username.produkt nutzen, wozu so ein unnötig langer Package Name o.o
Kenne ich auch, blos habe ich keine Domain, deswegen verwende ich meine Email: com.gmail.lichtenrider98
Des weitern habe ich noch meinen virtuellen Namen dahinter: com.gmail.lichtenrider98.LichtenLP
Und als letztes seinen Zweck: com.gmail.lichtenrider98.LichtenLP.Foerster.Akten.Tool
-
-
-
-
-
-
-