单击一次后按钮操作重复两次

时间:2015-09-23 09:02:54

标签: java lwjgl slick2d

我为我的游戏创建了一个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.."); 
                }
            });

我需要知道,我的代码是否存在与重复按钮操作相关的错误

1 个答案:

答案 0 :(得分:0)

一些指示:

  1. 我建议您修改mouseClicked实施。在通知所有return后尝试添加ButtonAction。现在你每次都在执行super.mouseClicked,这可能由于某种原因导致双重调用。
  2. 如果您不想对单个按钮执行重复的Button操作,也许您应该考虑将它们存储在Set并使用有意义的equals方法,这样您就可以#39; t添加重复项。
  3. 您是否肯定myButton.addAction只被调用一次?您可以通过调试来验证这一点。