Как изменить то, что делает кнопка?
В настоящее время я создаю игру на 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
}
});