Каков простой способ создать текстовое поле (или такое), которое позволяет пользователю вводить только двойные или двойные числа в Java? - PullRequest
2 голосов
/ 24 марта 2010

Я ищу способ, чтобы при вызове .getText () мое текстовое поле (JTextField, JFormattedTextField) возвращало double или int, а не строку. Каков наилучший способ сделать это (если это возможно)?

Спасибо!

badPanda: D

Ответы [ 3 ]

3 голосов
/ 24 марта 2010
  1. Зарегистрируйте InputVerifier и вызовите метод getValue из 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);
      }
    

    }

1 голос
/ 24 марта 2010

Использовать JFormattedTextField .

1 голос
/ 24 марта 2010

Я бы проверил ввод в обратном вызове текстового поля и просто сделал бы поле красным или создал бы предупреждающее сообщение поблизости. Вы можете удалить нецифровый символ из строки текстового поля.

...