到目前为止,代码的目标是交易在玩家1和玩家2之间来回转换,并允许转向它的玩家将其中一个棋子变为不可见(将图标设置为空)。它现在可以正常工作,来回交换,点击时片段变得不可见,但有时它不是第一次点击。在更改为null之前,可能需要对正确的部分进行3或4次单击。这有什么原因会发生吗?
Robo2是第一个玩家棋子的图标,robo1是第二个玩家棋子的图标。这些片段存储在程序中的JButton数组中,图标设置为播放器1或播放器2的图像。
public void mouseClicked(MouseEvent me) {
JButton clicked = (JButton)me.getSource();
if (player1) {
if (clicked.getIcon() == Robo2) {
clicked.setIcon(null);
player1 = false;
player2 = true;
}
else {
}
}
else if (player2) {
if (clicked.getIcon() == Robo1) {
clicked.setIcon(null);
player1 = true;
player2 = false;
}
else {
}
}
}
答案 0 :(得分:2)
找出一个解决方案,将鼠标侦听器更改为动作侦听器可以解决丢失的点击问题。使用单击按钮时发送的事件,而不是检测按钮上的单击。谢谢你的帮助。
答案 1 :(得分:1)
当您在Java中双击(或三击或四击)某些内容时,您会得到以下信息:
等
所以想象一下你是双击player1的按钮。第一个事件会将玩家改为玩家2;第二个事件会将其改回播放器1!
要解决这种情况 - 请检查clickCount(me.getClickCount())并忽略该事件,如果它不是1.喜欢
if (me.getClickCount() > 1) {
return;
}
// or else proceed as you do now