В настоящее время я создаю игру на Java с помощью Swing. У меня есть кнопка, и как только она делает одно, я хочу, чтобы это действие изменилось. Я пробовал, если утверждения, инструкции if-else, в то время как циклы и другие другие вещи, и я не могу заставить его работать. Кто-нибудь знает, как это сделать?Как изменить то, что делает кнопка?
-1
A
ответ
4
Создать атрибут уровня класса вдоль линий:
boolean buttonHasFiredOnce = false;
в способе действия выполняются, поместите код, как:
if (!buttonHasFiredOnce) {
doFirstMethod();
buttonHasFiredOnce = true;
} else {
doSecondMethod();
}
+0
Если вы не можете заставить его работать с этого совета: опубликуйте [SSCCE] (http://sscce.org/) вашей лучшей попытки. Он должен содержать только около 20 строк кода. –
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
}
});
Все знают, как это сделать. Вам нужно предоставить немного больше информации (и, вероятно, код), чтобы мы могли помочь вам ... – John3136
Измените 'ActionListener' как требуется ... – MadProgrammer