鼠标右键事件

sea*_*ion 3 java awt mouseevent mouselistener swingutilities

我搜索了这个论坛,但我找不到关于这个主题的很好的解释。和下面的说法有什么不同吗?哪种方式是触发此事件的更好方法?

if (evt.getButton() == 3) 
Run Code Online (Sandbox Code Playgroud)

对比

if (SwingUtilities.isRightMouseButton(evt))
Run Code Online (Sandbox Code Playgroud)

Ram*_*oza 7

SwingUtilities.isRightMouseButton(evt)

这使用一个位操作数来比较:

(evt.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK)
Run Code Online (Sandbox Code Playgroud)

而其他的,只需与一个可以改变的幻数进行比较,我宁愿将第一次比较更改为:

if(evt.getButton() == java.awt.event.MouseEvent.BUTTON3)
Run Code Online (Sandbox Code Playgroud)

SwingUtilities是 jdk 附带的 javax 的一部分,因此我更愿意将该责任委托给此实用程序(帮助程序)类,因此在这种情况下,SwingUtilities获胜。