Wie kann eine Zahl aus einem Textfeld eingelesen werden?
In vielen Programmen muss eine Zahl (Integer oder Double) aus einem Textfeld eingelesen werden. Hierfür bietet Java recht komfortable Möglichkeiten.
Mit
int x;
x = Integer.valueOf(jTextfield1.getText());
x = Integer.parseInt(jTextfield1.getText());
wird zuerst aus dem Textfeld jTextField1 mit der Methode getText() der aktuelle Text ausgelesen. Da dieser vom Datentyp String ist, muss er noch in einen Integerwert umgewandelt werden - dies erreicht man mit der Methode Integer.valueOf().
Analog kann ein Wert vom Datentyp Double eingelesen werden:
double x;
x = Double.valueOf(jTextfield1.getText());
Diese Vorgehensweise setzt allerdings einen intelligenten User voraus, d. h. der User gibt nur gültige Zahlen ein. Mit der Kontrollstruktur try .. except können fehlerhafte Eingaben abgefangen werden:
int x;
boolean ok;
try {
x = Integer.parseInt(jTextfield1.getText());
ok = true;
} catch(Exception e) {
JOptionPane.showMessageDialog(this, "Hallo Welt", "Nachricht", JOptionPane.ERROR_MESSAGE);
ok = false;
}
if (ok) {
// weitere Anweisungen, falls korrekte Eingabe
}
Möglich ist auch dieses Vorgehen:
int x;
try {
x = Integer.parseInt(jTextfield1.getText());
// weitere Anweisungen, falls korrekte Eingabe
} catch(Exception e) {
JOptionPane.showMessageDialog(this, "Hallo Welt", "Nachricht", JOptionPane.ERROR_MESSAGE);
}
Die Anweisungen im try-Block werden solange ausgeführt, solange kein Fehler eintritt. Bei komplexeren Algorithmen ist es hier allerdings notwendig, konkretere Fehlermeldungen anzugeben, indem man die Exception e verarbeitet.