鼠标左右键同时按下的检测问题
学Java一周,写个扫雷软件试试新,发现一个问题:在试图用getModifiersEx()检查鼠标左右键同时按下的时候,第一次运行此程序时总是检测不到,一定要按一下鼠标滚轮,然后就能正常了,不知道是不是有什么初始化的工作没有做。还请大神给解释一下。
相关的代码如下。rhel 6.5 + eclipse luna
final int LeftMask = MouseEvent.BUTTON1_DOWN_MASK;
final int RightMask = MouseEvent.BUTTON3_DOWN_MASK;
final int BothMask = MouseEvent.BUTTON1_DOWN_MASK | MouseEvent.BUTTON3_DOWN_MASK;
……
contentPanel.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if(run==false)
return;
int i, j, mask, r=0;
i=e.getY()/(contentPanel.Size+2);
j=e.getX()/(contentPanel.Size+2);
mask = e.getModifiersEx();
if((mask & BothMask)==BothMask)
r=contentPanel.Both(i, j);
else if((mask & LeftMask)==LeftMask)
r=contentPanel.Left(i, j);
else if((mask & RightMask)==RightMask)
contentPanel.Right(i, j);
……