【发布时间】:2016-06-02 06:29:36
【问题描述】:
根据我自己的研究,“事件处理程序”和“侦听器”这两个术语似乎经常互换使用,有时可能意味着相同的意思。有些人(或框架)根据侦听器是实际观察某事的对象来区分它们,然后可能会在事件发生时调用事件处理程序。
无论如何,我对 JavaFX 很感兴趣,我首先可以看到它们是如何从 Swing 中脱离出来的,在 Swing 中,一切通常都是一个侦听器——事实上,我曾经认为 Swing 拥有包含一个或多个事件处理程序的侦听器,即将根据发生的事件运行。
在 JavaFX 中,有一些事件处理程序是观察事件的过程,并在它们附加到的源生成事件时相应地运行。
然后有 ChangeListeners 来“侦听”属性上的更改事件。
即使我知道两者的实现不同,我是否可以这样写,一般来说,如果我们想到“事件处理”,那么说 ChangeListener 本质上是一个专门设计的事件处理程序是否正确?围绕监听属性的变化。而更一般地说,EventHandler 接口允许处理各种其他类型的事件,例如 ActionEvent、MouseEvent 等?
【问题讨论】:
-
我想我会认为事件处理程序和更改侦听器都是观察者/侦听器。请注意,有些事情可以用任何一种方式解释:例如更改其生命周期状态的任务可以由事件处理程序(
setOnSucceeded(...)等)或更改侦听器(task.stateProperty().addListener(...))管理。
标签: java javafx event-handling terminology changelistener