我有一个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; //
            }
        }
        }

    }
    );

最佳答案

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

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

09-30 17:20