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

Mar*_*uiz 5 java mouse action listener

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

Con*_*Del 5

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

当 (a) 您对事件详细信息(即 x/y 单击点)感兴趣或您使用的组件不支持 ActionListener 时,MouseListener(以及 MouseMotionLister、MouseWheelListener)非常有用

Action当您有一项无需外部事件详细信息(例如退出程序)即可执行的任务并且您希望能够在多个组件中访问该任务,或者通过键盘或鼠标


kai*_*kai 3

ActionListener 文档

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

鼠标监听器文档

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

从文档中你可以看到这个接口的用法完全不同。虽然您可以将MouseListeneronly 与 gui 元素结合使用,但ActionListener在没有 gui 时也可以使用 the,例如与计时器结合使用。