JAVA中关于鼠标事件的问题

使用BUTTON3_DOWN_MASK检测鼠标右键的状态if((event.getModifiersEx()&InputEvent.BUTTON3_DOWN_MASK)!... 使用BUTTON3_DOWN_MASK检测鼠标右键的状态

if((event.getModifiersEx()&InputEvent.BUTTON3_DOWN_MASK)!=0)
...//code for right click

我想问的是,在这里的&是做的逻辑运算还是位运算?
如果是位运算的话,那第一个方法比如返回一个0101,第二个参数等于0100,那么他们进行&运算以后,结果是0100,也就是!=0,但是他们的值却不同,代表的就不是一个键吧?那这里是怎么考虑的呢?
楼下的两位的答案完全不同

在这里如果是改成event.getModifiersEx()==InputEvent.BUTTON3_DOWN_MASK来判断按下的是否是右键,我就能理解,但是API里写最好写成上面那种方式,期待更详细的解答
展开
 我来答
黄邦勇帅哥哥
2010-03-11 · TA获得超过3987个赞
知道大有可为答主
回答量:1199
采纳率:100%
帮助的人:485万
展开全部
肯定是位运算符,为什么API里说可以把控制键使用位运算符来操作的原因,我给你作个例子,你就会明白了。
在JAVA中控制键(就是ctrl, alt等,当然你这里的这个也是这个范围内的)是用某一个字节中的位来表示的,我们假设在java使用一个字节(8位)来表过这些控制键。比如这一个字节的第1位表示ctrl,第2位表示alt...最后一位表示BUTTON3_DOWN_MASK,那么当按下ctrl第1位会被置于1,按下alt最后一位会被置于1,如果按下鼠标右见,则最后一位被置于1。因此常量BUTTON3_DOWN_MASK在这个字节中的表示就是0000 0001。如果是这样的话,我们来看你的if语句。

event.getModifiersEx()&InputEvent.BUTTON3_DOWN_MASK ,这样就很明白了。如果你按下了ctrl,也就是把这个字节的第1位置1,也就是1000 0000然后把这个数拿来与0000 0001按位与,结果为0,表示没按下鼠标右见。因此只有当你按下鼠标右见时表达式才为真,也就是才为1。整个表达式也就是(event.getModifiersEx()&InputEvent.BUTTON3_DOWN_MASK)!=0没有按下鼠标右见时,条件为真。
qi_ling2005
2010-03-11 · TA获得超过500个赞
知道小有建树答主
回答量:468
采纳率:0%
帮助的人:275万
展开全部
逻辑运算,表示event.getModifiersEx()、InputEvent.BUTTON3_DOWN_MASK这两个都发生时,执行代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AmorUnico艾唯子语
2010-03-11 · TA获得超过1616个赞
知道小有建树答主
回答量:630
采纳率:66%
帮助的人:301万
展开全部
首先这肯定是位运算,至于为什么((event.getModifiersEx()&InputEvent.BUTTON3_DOWN_MASK)!=0)就表明是右键我没有深究过,只要会直接使用java类中的一些整形常量即可,考试时候不考,工作中也不用去考虑那么多,楼主真实细心之人!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
udbvfhp
2010-03-11 · TA获得超过290个赞
知道小有建树答主
回答量:611
采纳率:0%
帮助的人:294万
展开全部
qi_ling2005正解。只是返回布尔值的布尔表达式而已。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zaza_ding
2010-03-11 · TA获得超过189个赞
知道答主
回答量:64
采纳率:0%
帮助的人:54万
展开全部
&是位逻辑运算符。这样的计算结果一定会是一个整型数。所以用来和0比对。
java里面单纯的逻辑运算符与是“&&”。

参考资料: http://blog.csdn.net/xiaoli_feng/archive/2007/03/09/1524976.aspx

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式