Как отключить горячие клавиши в java FX

169
15 апреля 2022, 17:10

У меня в java FX приложении при нажатии на ENTER должно выполняться определённое действие, но есть проблема: если я кликаю на какой-то Button (мышкой), а потом нажимаю ENTER, то этот Button нажимается ещё раз вместо выполнения заданого мной действия. Я так понимаю это встроенные в java алгоритмы, ведь я в код ничего подобного не прописывал. Как это исправить?

Answer 1

Не очень понял желаемое поведение, но перехват событий обычно делается через node.addEventFilter или EventDispetcher; например:

private class CustomEventDispatcher implements EventDispatcher {
    private final EventDispatcher originDispatcher;
    
    public CustomEventDispatcher( EventDispatcher originDispatcher ) {
        this.originDispatcher = originDispatcher;
    }
    
    @Override
    public Event dispatchEvent( Event event, EventDispatchChain tail ) {
        if ( event instanceof KeyEvent ) {
            // do something
            event.consume();
            return originDispatcher.dispatchEvent( event, tail );
        }
        return originDispatcher.dispatchEvent( event, tail );
    }
}
// ---
EventDispatcher originalDispatcher = scene.getEventDispatcher();
scene.setEventDispatcher( new CustomEventDispatcher( originalDispatcher ) );
READ ALSO
JAVA регулярные выражения. Найти по шаблону слово и из этого слова извлечь "подслово" [дубликат]

JAVA регулярные выражения. Найти по шаблону слово и из этого слова извлечь "подслово" [дубликат]

ЗдраствуйтеНадо в JAVA регулярным выражением найти по шаблону слово и из этого слова извлечь "подслово"

217
Java. Как найти объект в ArrayList'е?

Java. Как найти объект в ArrayList'е?

Задание создать ArrayList с продуктами, у которых есть название, id, и количествоА затем осуществить поиск по части названия и вывести подходящие...

241
Uncaught (in promise) Promise.then(async) Spring REST

Uncaught (in promise) Promise.then(async) Spring REST

Первый раз используя spring REST и vue jsVue не может найти postmapping, я так понял что это из-за промиса

190