event是MouseEvent类的实例;getModifiersEx方法能准确报告鼠标事件的鼠标按钮和键盘修饰符;
例如,可用下列代码检测鼠标右键是否被按下:if((event.getModifiersEx()&InputEvent.BUTTON3_DOWN_MASK)!=0)
...//
请问一下这个怎么比的?如果按下的是右键的话,event.getModifiersEx()和InputEvent.BUTTON3_DOWN_MASK的
值应该是相等的,两者&一下的值也相等,为什么要用&运算符啊?为什么最终结果要和0比?
不懂,等解答,感谢
例如,可用下列代码检测鼠标右键是否被按下:if((event.getModifiersEx()&InputEvent.BUTTON3_DOWN_MASK)!=0)
...//
请问一下这个怎么比的?如果按下的是右键的话,event.getModifiersEx()和InputEvent.BUTTON3_DOWN_MASK的
值应该是相等的,两者&一下的值也相等,为什么要用&运算符啊?为什么最终结果要和0比?
不懂,等解答,感谢
event.getModifiersEx()
返回此事件的扩展修饰符掩码。扩展修饰符表示所有模式键的状态,
比如是通过一个字节8位来控制模式状态。
10000000表示按下ctrl
01000000表示按下alt
而
000000001就表示按下BUTTON3_DOWN_MASK。
而BUTTON3_DOWN_MASK常量表示的字节就是00000001
所以当用&位运算的时候只有00000001&00000001的条件才表示点击了右键。条件等于1才能成立。