【问题标题】:JavaFX event handler vs change listener terminologyJavaFX 事件处理程序与更改侦听器术语
【发布时间】:2016-06-02 06:29:36
【问题描述】:

根据我自己的研究,“事件处理程序”和“侦听器”这两个术语似乎经常互换使用,有时可能意味着相同的意思。有些人(或框架)根据侦听器是实际观察某事的对象来区分它们,然后可能会在事件发生时调用事件处理程序。

无论如何,我对 JavaFX 很感兴趣,我首先可以看到它们是如何从 Swing 中脱离出来的,在 Swing 中,一切通常都是一个侦听器——事实上,我曾经认为 Swing 拥有包含一个或多个事件处理程序的侦听器,即将根据发生的事件运行。

在 JavaFX 中,有一些事件处理程序是观察事件的过程,并在它们附加到的源生成事件时相应地运行。

然后有 ChangeListeners 来“侦听”属性上的更改事件。

即使我知道两者的实现不同,我是否可以这样写,一般来说,如果我们想到“事件处理”,那么说 ChangeListener 本质上是一个专门设计的事件处理程序是否正确?围绕监听属性的变化。而更一般地说,Eve​​ntHandler 接口允许处理各种其他类型的事件,例如 ActionEvent、MouseEvent 等?

【问题讨论】:

  • 我想我会认为事件处理程序和更改侦听器都是观察者/侦听器。请注意,有些事情可以用任何一种方式解释:例如更改其生命周期状态的任务可以由事件处理程序(setOnSucceeded(...) 等)或更改侦听器(task.stateProperty().addListener(...))管理。

标签: java javafx event-handling terminology changelistener


【解决方案1】:

我认为 ChangeListener 可以被认为是 EventHandler 的一个子集,但事实并非如此,因为如果您查看 ChangeListener 文档,您会注意到它没有实现 EventHandler 接口(ChangeListener 实现了 WeakChangeListener 而 EventHandler 实现了弱事件处理程序);但是它们的用途是相似的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    相关资源
    最近更新 更多