什么';事件侦听器和;Java中的处理程序?

什么';事件侦听器和;Java中的处理程序?,java,events,listener,handler,Java,Events,Listener,Handler,一般来说,java有事件的侦听器和处理程序。 我的意思是我在不知不觉中使用它们,只要API中有可用的 我的问题是,在什么情况下我们使用侦听器,在什么情况下我们使用事件处理程序 他们之间有什么区别?特征 我一直在寻找原因,但找不到对Java的正确解释 它们在概念上是相同的东西-一个对UI事件执行某些操作的对象。通常,在Swing中,这些对象在外观级别称为“处理程序”(用于处理低级小部件事件),在更抽象的UI级别称为“侦听器”(用于实现应用程序逻辑)。侦听器和处理程序之间没有正式定义的区别。有些人可

一般来说,java有事件的侦听器和处理程序。
我的意思是我在不知不觉中使用它们,只要API中有可用的

我的问题是,在什么情况下我们使用侦听器,在什么情况下我们使用事件处理程序

他们之间有什么区别?特征


我一直在寻找原因,但找不到对Java的正确解释

它们在概念上是相同的东西-一个对UI事件执行某些操作的对象。通常,在Swing中,这些对象在外观级别称为“处理程序”(用于处理低级小部件事件),在更抽象的UI级别称为“侦听器”(用于实现应用程序逻辑)。

侦听器和处理程序之间没有正式定义的区别。有些人可能会说它们是可以互换的。然而,对我来说,它们的含义略有不同

侦听器是订阅源事件的对象。比照。通常,您可以为每种类型的事件订阅多个侦听器,它们是通过
addXyzListener
方法添加的

示例:JavaAPI中的

处理程序是负责处理某些事件的对象。典型的场景是为特定事件/任务提供处理程序作为构造函数的参数,或者通过
setXyzHandler
方法设置处理程序。换句话说,对于每种类型的事件,通常都有一个处理程序

示例:Java API中的。它是语义

  • 侦听器是接口
  • 适配器是实现特定接口并为其方法提供空实现的类。如果您不必实现接口的所有方法,这会有所帮助
  • 处理程序实现多个接口或委托对多个接口的调用

    • 我就是这么看的:

      侦听器监视要触发的事件。例如,
      KeyListener
      等待KeyEvents,
      MessageListener
      等待消息到达队列,依此类推


      处理程序负责处理事件。通常,侦听器和处理程序是齐头并进的。例如,KeyListener告诉ExitHandler“字母Q被按下”,处理程序执行诸如清理资源和优雅地退出应用程序之类的逻辑。类似地,按钮ClickListener会告诉同一个ExitHandler“单击了退出按钮”。因此,在本例中,您有两个不同的事件,两个不同的侦听器,但只有一个处理程序。

      侦听器侦听作为描述事件的数据值对象的事件。事件发生的时间和顺序通常很重要。按“0”键后跟“1”与“1”和“0”不同


      处理程序,处理复杂对象,例如新的套接字连接。处理程序可以处理对象任意长度的时间。对象创建和排序的时间并不重要。来自client0或client1的连接可以按任何顺序进行。

      最基本的区别是关联

      • 侦听器与事件源关联(例如:键盘)
      • 处理程序与事件关联(例如:keydown)

      一般来说,只有一个中央处理程序管理器来管理所有事件,而对于侦听器,每个想要侦听的实体都必须管理自己的侦听器集合。侦听器是一个在事件发生时被通知的对象,它有两个主要要求- 1-必须已向一个或多个来源注册,才能接收有关特定类型事件的通知 2-它必须实现接收和处理这些通知的方法。
      处理程序负责处理事件。

      我认为区别很微妙,因为具体的侦听器也是一个事件处理程序,或者至少有一个可以被视为事件处理程序的方法。 也就是说,一个具体的监听器在接收到一个事件对象(来自事件源)以及关于刚刚发生的事件(在事件源上)的所有有用信息后,处理或管理对事件的反应。 由于此侦听器必须实现一个xxxListener接口,该接口强制他实现至少一个方法,该方法在事件发生时由事件源对象依次执行,因此侦听器本身可以更准确地被视为一个处理程序,监听器对象实现的监听器接口的方法可以被视为真正的事件处理程序。 因此,我将事件处理程序视为响应事件而执行的代码。 这与侦听器对象不同,侦听器对象是更抽象概念(如观察者设计模式)的元素。
      这是我个人对该主题的看法。

      在我看来,最重要的区别在于,我们对每个事件的源使用侦听器,而对每个事件类型使用处理程序

      在JavaFX中为所有UI控件引入了EventHandler。而监听器是为可观察对象借用的,比如属性


      EventHandler是一种区分可观察事件和ui事件的方法。

      我一直在尝试理解所有信息,但我迷路了。我已经看过Delphi(PASCAL),C,C++,java…没有什么是明确的。所以,一个月后,这就是我所看到的问题。我可能完全偏离了轨道,所以请告诉我。。。请客气一点

      一个事件发送方,一个捕获方,只要发送方注册捕获方。我有4个对话框,每次文件(其处理代码位于4个对话框以外的其他模块中)更改时都需要更新。我考虑用老式的方式更新每一个事件,但后来我研究了Delphi事件和消息处理。让我们看看:

      文件F(发送方)已完成读取,应为n