Регулярное выражение, очистка TextField - Java

Узнай цену своей работы

Формулировка задачи:

Есть такой метод:
protected void setNumberFilter(TextField textBox){
        textBox.textProperty().addListener(new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue<? extends String> ov, String oldValue, String newValue) {
                if(!newValue.matches("^-?\\d+$")){
                      textBox.setText(oldValue);
                  }
                }
            }
        );
    }
и есть кнопка, которая очищает поле любым образом: так
 textBox.clear();
или так:
textBox.setText("");
http://prntscr.com/d2a9dv если нажимать, то поле не очистится, а если делать так:
textBox.setText(null);
то очистится, но будет исключение NPE. Как можно решить эту проблему?

Решение задачи: «Регулярное выражение, очистка TextField»

textual
Листинг программы
if (!("".equals(newValue) || newValue.matches("^-?\\d+$")))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5