2016-04-06 10 views
0

Abbrechen Ich versuche Schleife zu machen, wie ein Benutzer imput in Java zu validierenWie man nicht zwischen 0 verwirren und Buttom JOptionPane

der Benutzer ganze Zahl zwischen 1 und 12 eingeben müssen, aber wenn Klick die JOptionPane abbrechen muss

schließen
int number = 0; 
    boolean condition= false; 

    while (!condition) { 
     try { 
      txt = JOptionPane.showInputDialog(null, 
        "Entrez num :", "Number", 
        JOptionPane.PLAIN_MESSAGE); 

      if(txt!=null &&txt!="0") 
      number = Integer.parseInt(txt); 

         if (number <= 1 || number > 12) { 
      JOptionPane.showMessageDialog(null, "Integer must be between 1 and 12"); 
     }else 
       condition=true; 

     } catch (NumberFormatException e) { 
      JOptionPane.showMessageDialog(null, "you have to enter an integer"); 
     } 

    } 

das Problem, das ich bin vor, wenn der Benutzer, klicken Sie auf abbrechen diese Bedingung knallt, aber ich möchte die Joption Bereich zum Hauptmenü schließen und

JOptionPane.showMessageDialog(null, "Integer must be between 1 and 12"); 

ho w nicht zu verwechseln, wenn der Benutzer 0 in das Feld eingeben und wenn er auf Abbrechen klickt?

viel Anerkennung,

Bass

Antwort

3

Was sagt the javadoc?

Dort heißt es:

Rückkehr: Benutzereingabe oder null Bedeutung der Benutzer die Eingabe abgebrochen. So

wenn Sie "0" erhalten, trat der Benutzer 0, und wenn Sie null erhalten, der Benutzer abgebrochen.

Randbemerkung: don't use == to compare strings. Use equals().

+1

Tip für mich selbst: Javadoc Consult vor :) – napi15

+0

Dank zu fragen! wirklich schätzen – napi15

0

Der richtige Weg, es zu schreiben:

if(txt!=null &&txt!="0") 
{ 
if (number <= 1 || number > 12) { 
    JOptionPane.showMessageDialog(null, "Integer must be between 1 and 12"); 
else 
    number = Integer.parseInt(txt); 
} 
else ///He hit calcel 
condition= true