Was ist eine einfache Möglichkeit, ein Textfeld (oder das solche) zu erstellen, mit dem der Benutzer in Java INT/Doppel eingeben kann?

StackOverflow https://stackoverflow.com/questions/2510047

Frage

Ich suche nach einer Möglichkeit, sicherzustellen, dass mein Textfeld (JTextField, JFormattedTextField) eher ein Doppel oder eine int als eine Zeichenfolge zurückgibt, wenn ich .GIETTEXT () aufrufe. Was ist der beste Weg, dies zu tun (wenn möglich)?

Vielen Dank!

Badpanda: d

War es hilfreich?

Lösung

  1. Registrieren Sie InputVerifier und Anrufmethode getValue aus JFormattedTextField

    public class FormattedTextFieldVerifier extends InputVerifier {
        public boolean verify(JComponent input) {
         if (input instanceof JFormattedTextField) {
             JFormattedTextField ftf = (JFormattedTextField)input;
             AbstractFormatter formatter = ftf.getFormatter();
             if (formatter != null) {
                 String text = ftf.getText();
                 try {
                      formatter.stringToValue(text);
                      return true;
                  } catch (ParseException pe) {
                      return false;
                  }
              }
          }
          return true;
      }
      public boolean shouldYieldFocus(JComponent input) {
          return verify(input);
      }
    

    }

Andere Tipps

Ich würde die Eingabe im Textbox -Rückruf überprüfen und einfach das Kontrollkästchen rot machen oder eine Warnmeldung in der Nähe erstellen. Sie können das nicht numerische Zeichen aus der Textbox-Zeichenfolge entfernen.

Verwenden JFormattedTextfield.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top