Hi @ all
stehe vor einem Problem, bei welchem ich nicht weiß, wie im inet zu suchen ist.
Habe vier Eingabefelder, in welchen die Werte abgefragt und anschließend berechnet werden:
Wenn etwas falsch ist, dann erscheint ein JOptionPane mit einer Fehlerbezogenen Info.
So weit so gut.
Wenn der Anwender nun die Fehlermeldung mittels dem Button bestätigt,
wird die Eingabe des beanstandeten Feldes gelöscht.
Jetzt kann der Anwender die Eingabe wiederholen.
Nun kommt der Fehler:
Sollte der Anwender abermals die falschen Werte eingeben, dann erscheint wohl die vorgesehene Fehlermeldung,
wenn er diese dann bestätigt, kommt er nicht wieder zur neuerlichen Eingabeaufforderung, sondern wird einfach weitergeleitet.
Hier der Code:
Masse.ok(); beinhaltet dann einen JButton, welcher auf die nächste Card weiterleitet - aja - issn CardLayout.
Zwei Fragen hätte ich nun:
Wieso wird die Eingabe nur einmal wiederholt, obwohl das Ergebnis falsch ist?
Wie kann ich's schaffen, dass diese Eingabeaufforderung solange wiederholt wird, bis diese true ergibt?
Vielen Dank im Voraus
stehe vor einem Problem, bei welchem ich nicht weiß, wie im inet zu suchen ist.
Habe vier Eingabefelder, in welchen die Werte abgefragt und anschließend berechnet werden:
Wenn etwas falsch ist, dann erscheint ein JOptionPane mit einer Fehlerbezogenen Info.
So weit so gut.
Wenn der Anwender nun die Fehlermeldung mittels dem Button bestätigt,
wird die Eingabe des beanstandeten Feldes gelöscht.
Jetzt kann der Anwender die Eingabe wiederholen.
Nun kommt der Fehler:
Sollte der Anwender abermals die falschen Werte eingeben, dann erscheint wohl die vorgesehene Fehlermeldung,
wenn er diese dann bestätigt, kommt er nicht wieder zur neuerlichen Eingabeaufforderung, sondern wird einfach weitergeleitet.
Hier der Code:
Java:
public void checkCalc4(String mlb, String mlh, String lw, String dlh) {
// Eingabe ueberpruefen
String lineMlb = mlb;
String lineMlh = mlh;
String lineLw = lw;
String lineDlh = dlh;
String pattern = "^[0-9]{3,4}$";
Pattern r = Pattern.compile(pattern);
Matcher mMlb = r.matcher(lineMlb);
Matcher mMlh = r.matcher(lineMlh);
Matcher mLw = r.matcher(lineLw);
Matcher mDlh = r.matcher(lineDlh);
if(mMlb.find()){
validMlb = lineMlb;
Masse.ok();
}
else{
errPattern("Mauerlichte Breite");
Masse.txtMlb.setText(null);
return;
}
if(mMlh.find()){
validMlh = lineMlh;
Masse.ok();
}
else{
errPattern("Mauerlichte H\u00F6he");
Masse.txtMlh.setText(null);
return;
}
if(mLw.find()){
validLw = lineLw;
Masse.ok();
}
else{
errPattern("Lichte Weite");
Masse.txtLw.setText(null);
return;
}
if(mDlh.find()){
validDlh = lineDlh;
Masse.ok();
}
else{
errPattern("Duchgangslichte H\u00F6he");
Masse.txtDlh.setText(null);
return;
}
// casten
intMlb = Integer.parseInt(validMlb);
intMlh = Integer.parseInt(validMlh);
intLw = Integer.parseInt(validLw);
intDlh = Integer.parseInt(validDlh);
// ---------------------------------------------------------
// Berechnen
ergLw = intMlb - intLw;
ergDlh = intMlh - intDlh;
boolean positivLw = ergLw >= 250;
boolean positivDlh = ergDlh >= 250;
// Ergebnis ueberpruefen
if (positivLw) {
Masse.ok();
}
else{
errCalcLw("Fehler: Lichte Weite");
Masse.txtLw.setText(null);
}
if (positivDlh) {
Masse.ok();
}
else{
errCalcDlh("Fehler: Durchgangslichte H\u00F6he");
return;
}
}
Masse.ok(); beinhaltet dann einen JButton, welcher auf die nächste Card weiterleitet - aja - issn CardLayout.
Zwei Fragen hätte ich nun:
Wieso wird die Eingabe nur einmal wiederholt, obwohl das Ergebnis falsch ist?
Wie kann ich's schaffen, dass diese Eingabeaufforderung solange wiederholt wird, bis diese true ergibt?
Vielen Dank im Voraus
Zuletzt bearbeitet: