如何在swing中手动调用Action?

时间:2010-06-20 14:14:24

标签: java swing action

对于我的生活,我似乎无法找到有关Java Swing Actions的详细信息:'(当我遇到它们时,我立即意识到它们的用处。到目前为止,这一切都很容易使用。现在我被困在一个小事情:我如何手动运行?我的意思是代码?注意我正在使用Netbeans构建GUI(如果这有任何区别)。我已经到了:

Application a = Application.getInstance(JPADemoApp.class);
ApplicationContext ctx = a.getContext();
ActionMap am = ctx.getActionMap(JPADemoView.class, this.app);
Action act = am.get("fetchOrders");

(我在单独的行上写了所有内容以简化调试)

所以现在我对Action有了一个有效的引用。现在我该怎么运行它?

3 个答案:

答案 0 :(得分:30)

您可以直接调用动作事件的方法:

for(ActionListener a: buttonExample.getActionListeners()) {
    a.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, null) {
          //Nothing need go here, the actionPerformed method (with the
          //above arguments) will trigger the respective listener
    });
}

答案 1 :(得分:10)

如果您想手动运行操作,可以生成ActionEvent并将其传递给actionPerformed必须实现的Action方法,作为Action界面延伸ActionListener

答案 2 :(得分:2)

由于ActionEventListener,您可能需要考虑实施EventListenerList作为公开触发操作的方法的方法。