Как сделать textField, который принимает только целые числа, но больше 0 - PullRequest
0 голосов
/ 28 апреля 2020

Я создаю программу, в которой пользователь должен ввести количество обедов в таблице, которое не может быть нулевым, я могу разрешить вводить только целые числа в качестве textField, но как исключить 0 и выдать ошибку, когда пользователь вводит 0

1 Ответ

0 голосов
/ 28 апреля 2020

Возможность справиться с этим просто используйте ChangeListener для вашего текстового поля. В этом посте объясняется, как это сделать: Слушатель изменения значения для TextField JavaFX

Для прослушивателя диапазона он должен выглядеть следующим образом:

TextField textField = new TextField();
textField.textProperty().addListener((observable, oldValue, newValue) -> {
  int from = 0;
  int to = 200;
  if (newValue != null && !newValue.equals("")) {
    try {
      int number = Integer.parseInt(newValue);
      if (number < from || number > to) {
        throw new NumberFormatException();
      }
    } catch (NumberFormatException ignored) {
      field.setText(oldValue);
    }
  }
});

Это позволяет избежать Пользователь вставляет числа больше или меньше, чем вы хотите. Но это не идеальный способ сделать это (просто записать быстро).

...