鼠标右键单击事件

3

我在这个论坛上搜索了一下,但是没有找到一个好的关于这个主题的解释。下面的陈述有什么不同?哪种方式更好地触发这个事件?

if (evt.getButton() == 3) 

对比。

if (SwingUtilities.isRightMouseButton(evt))
1个回答

7

SwingUtilities.isRightMouseButton(evt)

这个函数使用位运算进行比较:

(evt.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK)

有些人只是将比较值与一个可以更改的魔数进行比较,我宁愿先将第一次比较改为:

if(evt.getButton() == java.awt.event.MouseEvent.BUTTON3)

SwingUtilities是JDK自带的javax包中的一部分,因此我更喜欢委托这个实用程序(辅助)类来处理这个责任,所以在这种情况下,SwingUtilities胜出。


你还应该添加一些内容,说明如果鼠标右键按钮发生变化,会发生什么情况,但+1。 - MadProgrammer
针对你的第二条建议,因为我的鼠标事件位于操作内,所以“== 3”。 - searchfunction

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接