Как изменить то, что делает кнопка?

В настоящее время я создаю игру на Java с использованием Swing. У меня есть кнопка, и как только она делает одну вещь, я хочу, чтобы ее действие изменилось. Я пробовал операторы if, операторы if-else, циклы while и другие разные вещи, и я не могу заставить его работать. Кто-нибудь знает, как сделать что-то подобное?

2 ответа

Создайте атрибут уровня класса в соответствии с:

boolean buttonHasFiredOnce = false;

В методе действия выполните код:

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

Я бы предложил заменить 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
     }
});
Другие вопросы по тегам