如何监听鼠标左右键同时按下这一事件?

32zyc 2004-09-10 03:55:44
在做一个扫雷程序,不知道怎么才能监听鼠标左右键同时按下?
是不是要自己做一个计时器?
能否给一下代码呢?
如果不够可另开贴给分,谢谢!
...全文
318 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fqyang 2004-09-10
  • 打赏
  • 举报
回复
想到一个比较笨的方法:

boolean flag1 = false;
boolean flag3 = false;

public void mousePressed(MouseEvent e) {


if(e.getModifiers()==MouseEvent.BUTTON1_MASK ){
flag1 = true;
//...
}
if(e.getModifiers()==MouseEvent.BUTTON3_MASK ){
flag3 = true;
//...
}
if(flag1 && flag3){
//...
}
}

public void mouseReleased(MouseEvent e) {
if(e.getModifiers()==MouseEvent.BUTTON1_MASK ){
flag1 = false;
//...
}
if(e.getModifiers()==MouseEvent.BUTTON3_MASK ){
flag3 = false;
//...
}

}
32zyc 2004-09-10
  • 打赏
  • 举报
回复
搞定了,谢谢大家!
lixiang823517 2004-09-10
  • 打赏
  • 举报
回复
按下某一个键后开辟一个线程,让他运行一点点时间,在这个时间内监听另外一个键是否按下~
应该可行,做个实验试试先
alaal 2004-09-10
  • 打赏
  • 举报
回复
只要保证当一个键按下的时候另外一个键并没有释放就可以了
32zyc 2004-09-10
  • 打赏
  • 举报
回复
这个我也想过,但事实上,真正能够同时按下左右键的情况很罕见的
一般会有先后,但是间隔时间极短,所以你写的这个只能测试到同时按下的情况
但对于绝大多数的有先后的事件是无法监听到的,微软的那个就是有极短的先后也能做出反映,我不知道这是不是要加一个Timer之类的东西,我也不会写,向大家指教!
alaal 2004-09-10
  • 打赏
  • 举报
回复
if(e.getModifiers()==MouseEvent.BUTTON1_MASK && e.getModifiers() ==MouseEvent.BUTTON3_MASK)
{
...


不知道是否可行

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧