Интерфейс EventDispatcher
public interface EventDispatcher
Event) необходимо разослать связанным объектам (EventTarget) через цепочку (EventDispatchChain), указанную целевым объектом. Каждый элемент в цепочке может влиять на путь события и само событие. Один элемент (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.