我有一个MouseClicked
监听器,但有时它不会运行。
但MousePressed
或MouseRelease
始终有效。
我的代码:
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; //
}
}
}
}
);
答案 0 :(得分:1)
如果按下鼠标按钮并且鼠标移动甚至纳秒,然后释放鼠标按钮,则它不会捕获mouseClicked
事件。在这种情况下,只会触发mousePressed
和mouseReleased
个事件。您可以通过收听mouseDragged
事件来验证这一点。在mousePressed
和mouseReleased
个事件之间,您会发现一个或多个mouseDragged
个事件。
将MouseListener
与Buttons一起使用是相当不寻常的。而是使用ActionListener
。