鼠标侦听器和动作侦听器之间的区别?

有什么不同? 你什么时候使用鼠标监听器? 还是一个动作听众? 谢谢,麻烦您了!

ActionListener Doc’s

用于接收动作事件的侦听器接口。 对处理动作事件感兴趣的类实现此接口,并使用组件的addActionListener方法向组件注册使用该类创建的对象。 当动作事件发生时,将调用该对象的actionPerformed方法。

MouseListener Doc’s

用于在组件上接收“有趣”鼠标事件(按下,释放,单击,输入和退出)的侦听器界面。 (要跟踪鼠标移动和鼠标拖动,请使用MouseMotionListener 。)

从文档中可以看出,这个接口的用法完全不同。 虽然只能与gui元素结合使用MouseListener ,但是当没有gui时也会使用ActionListener ,例如与计时器结合使用。

第一个区别是A MouseEvent是一个真正的系统事件,而ActionEvent是一个综合事件……它由系统事件触发。

当(a)您对事件详细信息(即x / y点击点)感兴趣或者您正在使用的组件不支持ActionListeners时,MouseListener(和MouseMotionLister,MouseWheelListener)非常有用。

如果您的任务可以在没有外部事件详细信息(例如退出程序)的情况下执行,并且您希望能够在多个组件中访问,或者使用键盘启动/启动,那么Action就很好或鼠标

ActionListener用于处理按钮的逻辑单击。 点击发生:

  • 当按下鼠标然后释放按钮时,
  • 或者当使用该按钮的键盘快捷键时,
  • 或当按钮具有焦点并按下空格键时
  • 或当按钮是默认按钮并按下Enter时,
  • 或者以编程方式调用按钮的click()方法

MouseListener仅处理低级别鼠标事件。