java 左右键同时按下

写扫雷的时候碰到的问题,从网上找了解决办法,但找不到具体的代码写法。自己总结后写出来的


          JButton button=new JButton();
//          对JButton大小的设置
          button.setPreferredSize(new Dimension(40,40));
          button.addMouseListener(new MouseAdapter() {
              private boolean flag=false;
              public void mousePressed(MouseEvent e)  {
                  if(e.getModifiersEx()==(MouseEvent.BUTTON3_DOWN_MASK + MouseEvent.BUTTON1_DOWN_MASK)){
                      System.out.println("左右键同时按下 "); //判断左右键同时按下
                      flag=true;
                  }
              }
              public void mouseReleased(MouseEvent e){
                      if(e.getButton()==MouseEvent.BUTTON1 && flag == false){
                          System.out.println("左键 ");
                      }
                      if(e.getButton()==MouseEvent.BUTTON3 && flag == false){
                          System.out.println("右键 ");
                  }
              }
        });


原理是:1、在鼠标按下时判断 左右键同时按下了,并设置一个标识。

2、在鼠标释放时判断是点击了左键还是右键,加上一个标识的判断。

3、这样就能区分出是点了点击个释放的顺序,如果都在按下或者释放的同一个方法中,执行的先后顺序就没有保障了。

4、亲自测试一下会更深刻的理解。

你可能感兴趣的:(java,计算机相关)