鼠标侦听器和动作侦听器之间的区别?
有什么不同? 你什么时候使用鼠标监听器? 还是一个动作听众? 谢谢,麻烦您了!
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仅处理低级别鼠标事件。