Wie kann eine Zahl aus einem Textfeld eingelesen werden?

Aus Informatik
Wechseln zu: Navigation, Suche

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.