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

时间:2012-11-23 09:51:56

标签: java swing jbutton actionlistener mouselistener

我有一个JButton,并希望捕获鼠标点击它。使用ActionListener与在JButton上使用MouseListener之间有什么实际和哲学上的区别?

3 个答案:

答案 0 :(得分:13)

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

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

MouseListener仅处理低级鼠标事件。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

从根本上说,MouseListener用于获取任意点击次数。 ActionListener用于选择“某人操作按钮”。因此,如果您真的对激活按钮感兴趣,请使用ActionListener。这样,如果通过键盘或任何其他机制激活,您将获得该事件。

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