2012-06-13 5 views
0

У меня есть класс actionSave, который расширяет AbstractAction.I его использовать для сохранения кнопки. где-то еще я хочу запустить тот же самый момент, который был использован для кнопки. Я пришел к выводу, чтобы использовать его, как показано ниже, но я не знаю, что передать в качестве аргумента?Как выполнить программу действий, например, действие JButton?

model.getActionSave().actionPerformed("what should i add here for action event"); 

ответ

4

Extract код метода actionPerformed() в другой метод без аргументов, и используйте этот метод:

public void actionPerformed(ActionEvent e) { 
    save(); 
} 

public void save() { 
    ... 
} 

... 

model.getActionSave().save(); 
1

Просто создать свой собственный ActionEvent, он имеет открытый конструктор. Например.

model.getActionSave().actionPerformed( 
new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "Save") 
); 

Если вы, к примеру, тестирование пользовательского интерфейса, вы можете также выбрать, чтобы выполнить щелчок на кнопке через API:

button.doClick(); 

Но в целом я предпочитаю первый подход, и избежать связи с UI

Смежные вопросы