Java扫雷程序左右键同时按下的问题

怎么让程序判断两个键按下的时候??我写了好多代码想实现但是出来都是编译没问题但是执行的时候不执行。lseif(e.getModifiersEx()==(e.BUTTON3... 怎么让程序判断两个键按下的时候??我写了好多代码想实现但是出来都是编译没问题但是执行的时候不执行。
lse if(e.getModifiersEx()==(e.BUTTON3_DOWN_MASK + e.BUTTON1_DOWN_MASK))
我用的是这个函数,但是为什么不被执行呢?
展开
 我来答
fuhaiwei
2012-06-24 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1390万
展开全部
改成
int onmask = e.BUTTON1_DOWN_MASK | e.BUTTON3_DOWN_MASK;
if ((e.getModifiersEx() & onmask) == onmask) {
System.out.println("ok");
}

API文档:
getModifiersEx

public int getModifiersEx()

返回此事件的扩展修饰符掩码。扩展修饰符表示所有模式键的状态,例如 ALT、CTRL、META 和事件发生后那一刻的鼠标按钮

例如,如果用户在按下 button 1 后又按下 button 2,然后以相同的顺序释放这两个按钮,则会生成以下事件序列:

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:

建议不使用 == 来比较此方法的返回值,因为在以后会增加新的修饰符。例如,检查 SHIFT 和 BUTTON1 已经按下而 CTRL 未按下的正确方法可以通过以下代码来演示:

int onmask = SHIFT_DOWN_MASK | BUTTON1_DOWN_MASK;
int offmask = CTRL_DOWN_MASK;
if (event.getModifiersEx() & (onmask | offmask) == onmask) {
...
}

即使添加了新的修饰符,上述代码仍然有效。

从以下版本开始:
1.4

参考资料: http://www.gznc.edu.cn/yxsz/jjglxy/book/Java_api/java/awt/event/InputEvent.html#getModifiersEx%28%2

蓝风水晶灵
2012-06-23 · TA获得超过934个赞
知道小有建树答主
回答量:731
采纳率:0%
帮助的人:437万
展开全部
两个键同时按下,应该在按键按下的事件监听方法里用if(e.getSource == 按钮1 && e.getSource == 按钮2 )。
更多追问追答
追问
没用啊。。
追答
你的两个按钮是不是通过键盘安的并且其他的没错,如果是就涉及到焦点的问题了,你可以先试试一个按钮有没有问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式