event是MouseEvent类的实例;getModifiersEx方法能准确报告鼠标事件的鼠标按钮和键盘修饰符;
例如,可用下列代码检测鼠标右键是否被按下:if((event.getModifiersEx()&InputEvent.BUTTON3_DOWN_MASK)!=0)
...//
请问一下这个怎么比的?如果按下的是右键的话,event.getModifiersEx()和InputEvent.BUTTON3_DOWN_MASK的
值应该是相等的,两者&一下的值也相等,为什么要用&运算符啊?为什么最终结果要和0比?
不懂,等解答,感谢

解决方案 »

  1.   

    从java API上看
    event.getModifiersEx()
    返回此事件的扩展修饰符掩码。扩展修饰符表示所有模式键的状态,
    比如是通过一个字节8位来控制模式状态。
    10000000表示按下ctrl
    01000000表示按下alt

    000000001就表示按下BUTTON3_DOWN_MASK。
    而BUTTON3_DOWN_MASK常量表示的字节就是00000001
    所以当用&位运算的时候只有00000001&00000001的条件才表示点击了右键。条件等于1才能成立。