Java JOptionframe - Input nur Ziffern

fsociety

Cadet 1st Year
Registriert
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
 
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.
 
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).
 
Zurück
Oben