2014-01-08 3 views
-1

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

+1

Все знают, как это сделать. Вам нужно предоставить немного больше информации (и, вероятно, код), чтобы мы могли помочь вам ... – John3136

+1

Измените 'ActionListener' как требуется ... – MadProgrammer

ответ

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 
    } 
}); 
Смежные вопросы