-
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
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 Event
dispatchEvent(Event event, EventDispatchChain tail)
通过这个EventDispatcher
调度指定的事件。
-
-
-
方法详细信息
-
dispatchEvent
Event dispatchEvent(Event event, EventDispatchChain tail)
通过这个EventDispatcher
调度指定的事件。 是否需要事件处理。 事件及其进一步的路径都可以通过这种方法修改。 如果事件在捕获阶段未处理/消耗,则应将其发送到链的其余部分(event = tail.dispatch(event);
)。- 参数
-
event
- 事件发送 -
tail
- 链条的其余部分发送到 - 结果
-
the return event or
null
if the event has been handled / consumed
-
-