Java OptionPane/Dialoge -Frage :)

12/03/2014 16:17 Bombasticx3#1
Moin Com,

ich will mit einem InputDialog ein Item in eine AWT-List führen.
Code:
String e = JOptionPane.showInputDialog("Bitte Wert einfügen");
list1.add(e);
Dabei ist leider der Fall, auch wenn ich beim Dialog auf "Abbrechen" drücke, erstellt er ein Item. Aber das hab ich so gelöst:
Code:
String e = JOptionPane.showInputDialog("Bitte Wert einfügen");
if (e != null){
list1.add(e);
}
Nun denn, bei "Abbrechen" kommt nix mehr.
Nun will ich, wenn der Dialog leer ist und auf "Ok" gedrückt wird, eine Fehlermeldung kommt und das Item erneut eingeben muss.
Finde da leider keinen Ansatz. Wäre dankbar für Hilfe.

MfG Bombasticx3
12/03/2014 16:44 alpines#2
Du kannst das ja in einer Schleife lösen die solange e setzt bis Ok gedrückt und Text eingegeben wurde.
12/03/2014 17:02 Bombasticx3#3
Quote:
Originally Posted by alpines View Post
Du kannst das ja in einer Schleife lösen die solange e setzt bis Ok gedrückt und Text eingegeben wurde.
Häts so gemacht
Code:
if(e==null){
//wenn InputDialog null, dann erneut eingeben
}
Aber mir fällt nix ein mit dem erneut eingeben.
12/03/2014 19:11 Dantox#4
Pack das am besten in eine eigene "Error" Klasse, welche aufgerufen wird..

Code:
if(e.isEmpty()){
  JOptionPane.showMessageDialog(null, "The input is empty.", "Error", 1);
  restartMethod(); //Vorherige Methode erneut aufrufen
}
12/03/2014 20:14 Bombasticx3#5
Quote:
Originally Posted by Dantox View Post
Pack das am besten in eine eigene "Error" Klasse, welche aufgerufen wird..

Code:
if(e.isEmpty()){
  JOptionPane.showMessageDialog(null, "The input is empty.", "Error", 1);
  restartMethod(); //Vorherige Methode erneut aufrufen
}
Danke dir.
Aber meine Lösung, da restartMethod() nicht so wollte:
Code:
 String e = JOptionPane.showInputDialog("Bitte Wert einfügen");
if (!e.isEmpty()){
list1.add(e);
 }
while (e.isEmpty()){
    JOptionPane.showMessageDialog(null, "The input is empty.", "Error", 1);
    break;
}
12/03/2014 20:25 snow#6
und das funktioniert wie es soll? ôo
Die Eingabe erfolgt viel weiter oben und break verlässt die while-Schleife.

Code:
protected String getInput() {
    String input = null;
    while (input == null) 
        input = JOptionPane.showInputDialog("Bitte Wert einfügen");
    return input
}
und dann einfach getInput() aufrufen.
12/06/2014 17:09 Bombasticx3#7
Quote:
Originally Posted by snow View Post
und das funktioniert wie es soll? ôo
Die Eingabe erfolgt viel weiter oben und break verlässt die while-Schleife.

Code:
protected String getInput() {
    String input = null;
    while (input == null) 
        input = JOptionPane.showInputDialog("Bitte Wert einfügen");
    return input
}
und dann einfach getInput() aufrufen.
Meins funzt wunderbar haha :D