Интерфейс 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
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Event |
dispatchEvent |
Отправляет указанное событие этим EventDispatcher. |
Подробное описание методов
dispatchEvent
Event dispatchEvent(Event event, EventDispatchChain tail)
EventDispatcher. Выполняет все необходимые операции обработки события. В этом методе можно изменить как само событие, так и его дальнейший путь. Если событие не обрабатывается/не потребляется во время фазы захвата, оно должно быть отправлено остальной части цепочки (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.