Java 使用ActionListener与MouseListener捕获JButton点击的优缺点

Java 使用ActionListener与MouseListener捕获JButton点击的优缺点,java,swing,jbutton,actionlistener,mouselistener,Java,Swing,Jbutton,Actionlistener,Mouselistener,我有一个JButton,想捕捉鼠标在上面的点击。在JButton上使用ActionListener与使用MouseListener在实践和哲学上有什么区别?ActionListener用于处理按钮的逻辑点击。咔嗒一声 当按下鼠标然后松开按钮时 或者当使用该按钮的键盘快捷键时 或者当按钮具有焦点且按下空格键时 或者当按钮为默认按钮并按下Enter键时 或者以编程方式调用按钮的click()方法 鼠标侦听器仅处理低级鼠标事件。如果您只想知道按钮已按下,请使用ActionListener。如果您的

我有一个JButton,想捕捉鼠标在上面的点击。在JButton上使用ActionListener与使用MouseListener在实践和哲学上有什么区别?

ActionListener用于处理按钮的逻辑点击。咔嗒一声

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

鼠标侦听器仅处理低级鼠标事件。

如果您只想知道按钮已按下,请使用
ActionListener
。如果您的检查涉及更深入的分析,如鼠标状态(鼠标进入按钮,退出)等,请使用
鼠标听筒

基本上,鼠标听筒用于拾取任意点击。ActionListener用于拾取“某人操作按钮”。因此,如果你真的对激活buton感兴趣,请使用ActionListener。这样,如果通过键盘或任何其他机制激活,您将获得事件


另一方面,如果您对点击感兴趣,则应使用MouseStener。例如,他们点击了按钮的哪一部分,是否点击了不可激活的东西等。

对于此类问题,请务必阅读swing tag wiki中引用的在线教程中的相关章节,这里是针对初学者A和B的?我建议C)采取
行动。有关详细信息,请参阅。