如何更改按钮的功能?

时间:2014-01-08 01:09:01

标签: java swing jbutton actionlistener actionevent

我目前正在使用Swing在Java中创建游戏。我有一个按钮,一旦它做了一件事,我希望它的行动改变。我已经尝试过if语句,if-else语句,while循环和其他各种各样的东西,我无法让它工作。有谁知道怎么做这样的事情?

2 个答案:

答案 0 :(得分:4)

创建类级别属性:

boolean buttonHasFiredOnce = false;

在动作执行方法中,输入如下代码:

if (!buttonHasFiredOnce) { 
  doFirstMethod();
  buttonHasFiredOnce = true;
} else {
  doSecondMethod();
}

答案 1 :(得分:0)

我建议替换ActionListener

public static void changeAction(JButton button, ActionListener al) {
    for (ActionListener listener: button.getActionListeners()) {
        button.removeActionListener(listener);
    }
    button.addActionListener(al);
}

然后当你想要改变行动时......

changeAction(button, new ActionListener() {
     @Override
     public void actionPerformed(ActionEvent e) {
         //Insert Action Code
     }
});