如何执行像JButton执行的程序化操作?

时间:2012-06-13 15:57:56

标签: java swing jbutton abstraction

我有一个actionSave类,它扩展了AbstractAction.I使用它来保存按钮。在其他地方,我想运行用于按钮的同一瞬间。 我得出结论使用它如下,但我不知道要传递什么作为参数?

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

2 个答案:

答案 0 :(得分:4)

actionPerformed()方法的代码解压缩到另一个没有参数的方法中,并改为调用此方法:

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

public void save() {
    ...
}

...

model.getActionSave().save();

答案 1 :(得分:1)

只需创建自己的ActionEvent,它就有一个公共构造函数。 E.g。

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

如果你是测试您的用户界面,您还可以通过API选择点击按钮:

button.doClick();

但总的来说,我更喜欢第一种方法,并避免与UI的耦合