来自java网站:
BUTTON1_DOWN_MASK = The Mouse Button1 extended modifier constant.
BUTTON1_MASK = The Mouse Button1 modifier constant.
Run Code Online (Sandbox Code Playgroud)
我甚至不确定"修饰常数"是什么.更不用说扩展了一个.但我确实理解这BUTTON1_MASK只是单击鼠标左键时的整数表示.
Nat*_*ate 10
BUTTON1_MASK是指示来自按钮1的事件的掩码 BUTTON1_DOWN_MASK在概念上是相似的,但是该常量的扩展版本.
有两种方法可以返回这样的常量集:InputEvent#getModifiers()和InputEvent#getModifiersEx(),它们将分别返回修饰符常量或扩展修饰符常量.
InputEvent.getModifiers()返回的按钮掩码仅反映更改状态的按钮,而不反映所有按钮的当前状态...要获取所有按钮和修改键的状态,请使用InputEvent.getModifiersEx().
扩展修饰符表示事件发生后所有模态键的状态,例如ALT,CTRL,META和鼠标按钮
例如,如果用户按下按钮1,然后按下按钮2,然后以相同的顺序释放它们,则会生成以下事件序列:
Run Code Online (Sandbox Code Playgroud)MOUSE_PRESSED: BUTTON1_DOWN_MASK MOUSE_PRESSED: BUTTON1_DOWN_MASK | BUTTON2_DOWN_MASK MOUSE_RELEASED: BUTTON2_DOWN_MASK MOUSE_CLICKED: BUTTON2_DOWN_MASK MOUSE_RELEASED: MOUSE_CLICKED:
如果你想要的只是检测一个按钮1(通常是左)点击,那么其中任何一个都应该工作:
if ((e.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) {
System.out.println("BUTTON1_MASK");
}
if ((e.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) != 0) {
System.out.println("BUTTON1_DOWN_MASK");
}
Run Code Online (Sandbox Code Playgroud)
此外,您可以查看此开源版本InputEvent,其中包含一些更有用的注释,并显示内部发生的情况