Какой простой способ создать текстовое поле (или тому подобное), которое позволяет пользователю вводить INT/удвоение в Java?

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

Вопрос

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

Спасибо!

Badpanda: d

Это было полезно?

Решение

  1. Зарегистрируйте вход и позвонить метод 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);
      }
    

    }

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top