Контекст: JDK 8 & JavaFX
У меня есть элемент управления TextField, который используется в диалоге. Это первый элемент управления для редактирования, поэтому он получает фокус при открытии диалогового окна. В диалоговом окне есть кнопка, настроенная как кнопка отмены (Button.setCancelButton (true))
В обычном TextField, если я нажимаю ESC сразу после открытия диалогового окна, диалоговое окно закрывается (как и ожидалось).
Однако, как только я добавляю TextFormatter с фильтром ввода в TextField, нажатие клавиши ESC, по-видимому, используется элементом управления вводом, и ESC больше не закрывает диалоговое окно.
TextFormatter имеет только фильтр ввода (для ограничения элемента управления вводом только цифрами), но фильтр ввода не вызывается при нажатии клавиши ESC - потому что содержимое поля не изменилось.
Это довольно незначительная проблема, но раздражает отсутствие последовательного поведения и невозможность просто нажать ESC, чтобы закрыть диалоговое окно. Любые идеи о том, как обеспечить, чтобы нажатие клавиши ESC распространялось / не использовалось, чтобы оно обрабатывалось диалогом?
Редактировать:
Мой вопрос выглядит дубликатом этого вопроса: Выход из числового текстового поля в диалоговом окне JavaFX . Что, конечно, мне не удалось найти, несмотря на то, что я просматривал Google перед публикацией ... TLDR; класс TextFormatter не может переслать событие нажатия клавиши ESC.