MouseCliked监听器并不总是运行

时间:2013-06-14 08:26:24

标签: java events awt mouseevent mouselistener

我有一个MouseClicked监听器,但有时它不会运行。

MousePressedMouseRelease始终有效。

我的代码:

mixbutton[0][0].addMouseListener(new java.awt.event.MouseAdapter()
    {

        public void mouseClicked(java.awt.event.MouseEvent evt)
        {   if(flag==0) 
        {
            count++;
            if(subimage[0][1]==null)
            {
                temp=subimage[0][0];
                subimage[0][0]=subimage[0][1];
                subimage[0][1]=temp;
                mixbutton[0][0].setIcon(subimage[0][0]);
                mixbutton[0][1].setIcon(subimage[0][1]);
            }
            else if(subimage[1][0]==null)
            {
                temp=subimage[0][0];
                subimage[0][0]=subimage[1][0];
                subimage[1][0]=temp;
                mixbutton[0][0].setIcon(subimage[0][0]);
                mixbutton[1][0].setIcon(subimage[1][0]);
            }
            if(checkimage[0][0]==subimage[0][0] &&checkimage[0][1]==subimage[0][1] &&checkimage[0][2]==subimage[0][2] &&
                    checkimage[1][0]==subimage[1][0] &&checkimage[1][1]==subimage[1][1] &&checkimage[1][2]==subimage[1][2] &&
                            checkimage[2][0]==subimage[2][0] &&checkimage[2][1]==subimage[2][1]  )
            {
                jumsulabel.setText("sucess"+count);
                rankinput.setSize(400,300);rankinput.setVisible(true);
                flag=1; //
            }
        }
        }

    }
    );

1 个答案:

答案 0 :(得分:1)

如果按下鼠标按钮并且鼠标移动甚至纳秒,然后释放鼠标按钮,则它不会捕获mouseClicked事件。在这种情况下,只会触发mousePressedmouseReleased个事件。您可以通过收听mouseDragged事件来验证这一点。在mousePressedmouseReleased个事件之间,您会发现一个或多个mouseDragged个事件。

MouseListener与Buttons一起使用是相当不寻常的。而是使用ActionListener