Java JOptionframe - Input nur Ziffern

fsociety

Cadet 1st Year
Dabei seit
Juli 2015
Beiträge
8
Hey,

ich hab jetzt nen code geschrieben, der der Wert a scannen soll. Dabei arbeite mit JOptionframe. Dabei sollen nur Ziffern eingelesen werden, denn wenn andere zeichen gelesen werden, kommt es zu nem error. Hier ist der Code:

double a = Integer.parseInt(JOptionPane.showInputDialog(
"Geben Sie einen Wert für a ein"));

mfg
 

Tumbleweed

Captain
Dabei seit
März 2008
Beiträge
3.553
while-Schleife drum, try-catch drum, NumberFormatException behandeln und im Fehlerfall continue, um die Eingabe erneut zu erfragen.

P.S.: einen int einer double-Variable zuzuweisen, wirkt komisch.
 

Rossie

Captain
Dabei seit
Dez. 2010
Beiträge
4.005
showInputDialog ist keine sehr benutzerfreundliche Lösung. Hier kannst Du die Eingabe erst nach Schließen des Dialogs überprüfen - was man dann natürlich auch unbedingt machen sollte.

Ich würde die Validierung aber immer schon im Dialog machen. Entweder direkt während der Eingabe oder beim Verlassen des Eingabefeldes. Die Runtime bietet mit JFormattedTextField ein entsprechendes Widget: https://docs.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html.

Ist natürlich mehr Arbeit sich einen eigenen Dialog zu basteln (falls man kein entsprechendes Framework nutzt), aber der Nutzer hätte so unmittelbar Feedback (üblicherweise zeigt man bei fehlerhafter Eingabe direkt im Dialog einen entsprechenden Hinweis und färbt das Feld und/oder die Eingabe ein).
 
Top