也是Control
的JavaFX EventTarget
也需要实现buildEventDispatchChain()
中的EventTarget
。
简而言之,如果要创建Control
,则应该在此方法接收的EventDispatchChain
的现有链的前面加上EventDispatchChain
。 EventDispatchChain
需要一个EventDispatcher
实例,在这里我不确定该如何进行。
EventDispatcher
是一个接口,在com.sun程序包之外没有任何有意义的实现(某些PopupWindow
内部类是一个例外)。因此它们无法使用。
即使阅读有关现有实现的源代码也很令人困惑;而EventDispatcher
的定义很简单:
Event dispatchEvent(Event event, EventDispatchChain tail)
现有实现的工作类似于在其方法名称中显式引用冒泡阶段和捕获阶段。
我了解在容纳层次结构中上下传递Events
的过程,但是阅读EventDispatcher
的com.sun实现代码很难理解它们到底在做什么,为什么?重新执行此操作,以及任何实现都必须完成多少工作,以及正在执行的操作多少是特定于其要求的。
有没有人实施过EventTarget
或没有任何可能的原因-Control
的实现者应该只使用Node
提供的继承的实现,而不必担心呢?