Интерфейс EventDispatcher
public interface EventDispatcher
EventDispatcher представляет собой сущность для диспетчеризации и обработки событий. Он используется, когда необходимо отправить событие Event ассоциированному EventTarget через EventDispatchChain, указанный целевым объектом. Каждый EventDispatcher в цепочке может влиять на путь события и само событие. Один EventDispatcher может находиться в нескольких цепочках. Система определяет две последовательные фазы доставки события. Первая фаза называется фазой захвата и происходит, когда событие проходит от первого элемента EventDispatchChain, связанного с целевым объектом, к его последнему элементу. Если целевой объект является частью иерархии, направление события в этой фазе обычно соответствует направлению от корневого элемента иерархии к целевому объекту. Вторая фаза называется фазой всплытия и происходит в обратном порядке по сравнению с первой фазой. Таким образом, в этой фазе событие возвращается от последнего элемента EventDispatchChain к его первому элементу. Обычно это соответствует направлению от целевого объекта обратно к корню в иерархии целевого объекта.
Каждый EventDispatcher в EventDispatchChain отвечает за пересылку события остальной части цепочки во время диспетчеризации события. Эта пересылка происходит в методе dispatchEvent и формирует цепочку вложенных вызовов, что позволяет одному EventDispatcher увидеть событие во время обеих фаз диспетчеризации в одном вызове dispatchEvent.
Шаблон реализации для dispatchEvent.
public Event dispatchEvent(Event event, EventDispatchChain tail) {
// capturing phase, can handle / modify / substitute / divert the event
if (notHandledYet) {
// forward the event to the rest of the chain
event = tail.dispatchEvent(event);
if (event != null) {
// bubbling phase, can handle / modify / substitute / divert
// the event
}
}
return notHandledYet ? event : null; }С момента:
JavaFX 2.0
-
Краткое описание методов
Все методыМетоды экземпляровАбстрактные методы Модификатор и тип Метод и описание EventdispatchEvent(Event event, EventDispatchChain tail)Диспетчеризует указанное событие этимEventDispatcher.
-
Подробное описание методов
-
dispatchEvent
Event dispatchEvent(Event event, EventDispatchChain tail)Диспетчеризует указанное событие этимEventDispatcher. Выполняет необходимую обработку события. В этом методе могут быть изменены как само событие, так и его дальнейший путь. Если событие не обрабатывается/не потребляется во время фазы захвата, оно должно быть диспетчеризовано остальной части цепочки (event = tail.dispatch(event);).Параметры:
event- событие для диспетчеризацииВозвращает:
возвращаемое событие или
null, если событие было обработано/потреблено
-
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.