我为我的游戏创建了一个Button类,基于 Slick ,它扩展了 MouseOverArea 类。
当鼠标点击按钮时,我使用了另一个类来执行操作
现在我遇到了问题。当我点击按钮一次时,按钮动作重复两次。
这是我的Button Class的覆盖mouseClicked
方法代码。
@Override
public void mouseClicked(int button, int x, int y, int clickCount) {
if (isMouseOver() && stateBasedGame.getCurrentStateID() == stateID ) {
for (ButtonAction ba : actionList) {
ba.action();
}
}
super.mouseClicked(button, x, y, clickCount);
}
我使用ArrayList
来保留所有动作
(我只为我创建的ButtonAction
对象添加了一个Button
侦听器
这是我的ButtonAction
班级
public interface ButtonAction {
public void action();
}
这是我向My Created Button
对象添加操作的方式。
myButton.addAction(new ButtonAction() {
@Override
public void action() {
//this line repeate twice
System.out.println("Click On Me..");
}
});
我需要知道,我的代码是否存在与重复按钮操作相关的错误
答案 0 :(得分:0)
一些指示:
mouseClicked
实施。在通知所有return
后尝试添加ButtonAction
。现在你每次都在执行super.mouseClicked
,这可能由于某种原因导致双重调用。Button
操作,也许您应该考虑将它们存储在Set
并使用有意义的equals
方法,这样您就可以#39; t添加重复项。myButton.addAction
只被调用一次?您可以通过调试来验证这一点。