InputDialog

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
String s = JOptionPane.showInputDialog("Bitte was eingeben" );

Das kenne ich, aber wie geht das, das er ne Zahl zurückgibt?

int s = JOptionPane.showInputDialog( "Bitte Wert eingeben);
das klappt irgendwie nicht.
 

thE_29

Top Contributor
Woa, so würd ichs aber net machen :bae:


Code:
String strRet = "";
int x = -1;
do{
strRet = JOptionPane.showInputDialog( "Bitte Wert eingeben");
}while(strRet == null);
try{
x  = Integer.parseInt(strRet);
}
catch(Exception ex)
{
ex.printStackTrace();
System.out.println("Kein Integer eingegeben!!");
}
 

SebiB90

Top Contributor
thE_29 hat gesagt.:
Woa, so würd ichs aber net machen :bae:


Code:
String strRet = "";
int x = -1;
do{
strRet = JOptionPane.showInputDialog( "Bitte Wert eingeben");
}while(strRet == null);
try{
x  = Integer.parseInt(strRet);
}
catch(NumberFormatException ex)
{
ex.printStackTrace();
System.out.println("Kein Integer eingegeben!!");
}
aber wenn der benutzer keine zahl eingibt dann kommt der dialog nicht mehr
ich würd es so machen
Code:
String s = "";
int zahl = 0;
do{
s = JOptionPane.showInputDialog( "Bitte Wert eingeben);
try{
zahl  = Integer.parseInt(strRet);
}
catch(Exception ex)
{
System.out.println("Das ist keine Zahl!!");
continue;
}
break;
}while(true);
 

thE_29

Top Contributor
@sebi: weißt du was ne do/while schleife überhaupt tut??

Und was der String ist wenn man auf abbrechen klickt ;)

@dotlens: np :bae:


Nachtrag: @sebi du hast recht und ich auch, aber deines ist nicht schön ;> (continue, und ne true schleife...)

Code:
      String strRet = "";
      int x = -1;
      do{
        strRet = JOptionPane.showInputDialog("Bitte Wert eingeben");
        try
        {
          x = Integer.parseInt(strRet);
        }
        catch (NumberFormatException ex)
        {
          System.out.println("Kein Integer eingegeben!!");
          strRet = null;
        }
      }while (strRet == null);

Und hinter ner do/while schleife gehört hinterm while ein ;!
 

dotlens

Top Contributor
@the_29 rate mal was strRet ist wenn der User auf abbrechen klickt :D

API hat gesagt.:
Returns:
user's input, or null meaning the user canceled the input

somit wird bei deiner Variante immer wieder ein Input Dialog aufgerufen wenn der User auf "abbrechen" klickt. aber nur dann :D

die Variante mit try catch block ist jedoch auch nicht die beste/performanteste
 

dotlens

Top Contributor
the_29's Ansatz ist schön, jedoch hat er einen überlgungfehler gemacht (ende des Tages ;)) bei ihm kommt die input box immer wieder neu, wenn der User auf abbrechen klickt...

hab seine Version jetzt abgeändert, dass sie stimmt. unschön ist noch die Ausgabe einer Exception beim abbruch. Kann aber nicht mehr klar denken... :( also hab ich das Problem nicht mehr gelöst...
Code:
		String strRet = "";
		int x = -1;
		do {
			strRet = JOptionPane.showInputDialog("Bitte Wert eingeben");
			try {
				x = Integer.parseInt(strRet);
			}
			catch (NumberFormatException ex) {
				System.out.println("Kein Integer eingegeben!!");
				strRet = null;
			}
		} while (strRet.equals(""));
		System.out.println(x);
 

thE_29

Top Contributor
ich habe das absichtlich so gemacht ;)

Hab das von dir falsch aufgefasst.

Du wolltest ja das der Inputdialog nur dann wieder kommt wenn man keine Zahl eingibt, ich habe verstanden, das er immer (auch wenn man auf abbrechen klickt) wieder neu kommen soll :bae:

Also kein Fehler, nur falsch aufgefasst :)
 

thE_29

Top Contributor
oder einfach eine Zwanghafte Eingabe ;)

Wennst nix eingibst, kommst net weiter

Unter dem Motto: Wieviel wollen sie mir überweisen :bae:
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben