-
public interface EventDispatcherСущность, представляющая обработку и рассылку событий. Используется, когда событие необходимо разослать связанному объекту через указанный целевой объект. Каждый объект в цепочке может повлиять на путь и само событие. Один объект может входить в несколько цепочек.Система определяет две последовательные фазы доставки событий. Первая фаза — фаза захвата — происходит, когда событие перемещается от первого элемента цепочки, связанной с целевым объектом, к последнему элементу. Если целевой объект является частью иерархии, направление события в этой фазе обычно соответствует направлению от корневого элемента иерархии к целевому объекту. Вторая фаза — фаза всплытия — происходит в обратном порядке по сравнению с первой фазой. Таким образом, событие возвращается от последнего элемента цепочки к первому. Обычно это соответствует направлению от целевого объекта обратно к корню в иерархии целевого объекта.
Каждый элемент в цепочке отвечает за перенаправление события остальной части цепочки во время обработки события. Это перенаправление происходит в методе `dispatchEvent` и формирует цепочку вложенных вызовов, что позволяет одному объекту увидеть событие во время обеих фаз обработки в одном вызове метода.
Шаблон для реализации интерфейса `EventDispatcher`.
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;}- Since:
- JavaFX 2.0
-
Краткое описание методов
Все методыМетоды экземпляраАбстрактные методы Модификатор и тип Метод Описание EventdispatchEvent(Event event, EventDispatchChain tail)Обрабатывает указанное событие с помощью данного объекта.
-
Подробное описание методов
-
dispatchEvent
Event dispatchEvent(Event event, EventDispatchChain tail)
Обрабатывает указанное событие с помощью данного объекта. Выполняет необходимую обработку события. В этом методе можно изменить как само событие, так и его дальнейший путь. Если событие не обрабатывается/не потребляется во время фазы захвата, оно должно быть передано остальной части цепочки (event = tail.dispatch(event);).- Параметры:
-
event- событие для обработки -
tail- остальная часть цепочки для обработки события - Возвращает:
- обработанное событие или `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.