Hallo liebe Community, ich bin recht neu im programmieren und unser Lehrer hat jetzt angefangen uns ins GUI "reinzuwerfen" Fürs Erste sollen wir mir Dialogen arbeiten. Vorweg: Es sind keine HAs, da unsere Klasse seeeeehr langsam ist (sie hängen noch bei einfachen Rechnungen...)
Ich habe einen Taschenrechner programmiert... diesen versuche ich gerade ins grafische (weg von der Konsole) umzusetzen. Mein Problem ist nun jetzt, dass ich ab Zeile 20 eine try-catch Abfrage machen möchte, und bei einem numerformatexception einen Fehler ausgeben möchte und die do-while-Schleife in Gang setzen möchte, damit die Eingaben wiederholt werden müssen.
Ich möchte jetzt mal zu meinem Problem kommen:
Jetzt startet die Schleife nicht nur bei einem Fehler, sondern immer. Wie ist das zu verhindern?
Also wenn in die Zahlenfelder nur Zahlen eingegeben wurden, dann soll er den while-Teil übersprungen werden...
Ich muss mich jetzt schon mal für meinen schrecklichen Code entschuldigen, da ich erst seit 2 Wochen in der Schule programmiere, und es eher auf das Ziel und nicht den Weg ankommt erst mal.
Wenn es nur so ein bescheuerter Fehler ist, werde ich mich mal wieder über mich aufregen, aber manchmal sehe ich halt den Code vor lauter Zeichen nicht...(oder war das der Wald?(Achne, java war ja die Insel!))
Vielen Dank
Lukas
Ich habe einen Taschenrechner programmiert... diesen versuche ich gerade ins grafische (weg von der Konsole) umzusetzen. Mein Problem ist nun jetzt, dass ich ab Zeile 20 eine try-catch Abfrage machen möchte, und bei einem numerformatexception einen Fehler ausgeben möchte und die do-while-Schleife in Gang setzen möchte, damit die Eingaben wiederholt werden müssen.
Ich möchte jetzt mal zu meinem Problem kommen:
Jetzt startet die Schleife nicht nur bei einem Fehler, sondern immer. Wie ist das zu verhindern?
Also wenn in die Zahlenfelder nur Zahlen eingegeben wurden, dann soll er den while-Teil übersprungen werden...
Java:
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class Meldung {
public Meldung(){
double zahl1=0;
String operator="";
double zahl2=0;
@SuppressWarnings("unused")
boolean exception = false;
do{
exception = false;
JTextField tfzahl1 = new JTextField();
JTextField tfzahl2 = new JTextField();
JTextField tfoperator = new JTextField();
Object[] message = {"1. Zahl", tfzahl1, "\nOperator", tfoperator, "\n2. Zahl", tfzahl2};
JOptionPane pane = new JOptionPane( message, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
pane.createDialog(null, "Variablenübergabe").setVisible(true);
System.out.println("Rechne: " + tfzahl1.getText() + " " + tfoperator.getText() + " " + tfzahl2.getText());
try{
zahl1 = Double.parseDouble(tfzahl1.getText());
operator = tfoperator.getText();
zahl2 = Double.parseDouble(tfzahl2.getText());
}
catch (NumberFormatException e){
exception = true;
Object[] options = {"OK", "Cancel"};
int ergebnis = JOptionPane.showOptionDialog(null, "Sie müssen eine Ganzzahl eingeben", "Eine Nachricht", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]);
if (ergebnis == 1)
System.exit(0);
}
} while (exception = true);
System.out.println(zahl1 + operator + zahl2);
}
public static void main (String [] args){
new Meldung();
}
}
Ich muss mich jetzt schon mal für meinen schrecklichen Code entschuldigen, da ich erst seit 2 Wochen in der Schule programmiere, und es eher auf das Ziel und nicht den Weg ankommt erst mal.
Wenn es nur so ein bescheuerter Fehler ist, werde ich mich mal wieder über mich aufregen, aber manchmal sehe ich halt den Code vor lauter Zeichen nicht...(oder war das der Wald?(Achne, java war ja die Insel!))
Vielen Dank
Lukas