如何手动调用轮转中的操作?

2022-09-01 14:07:12

对于我的生活,我似乎找不到有关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");

(我写在单独的行上,以简化调试)

所以现在我有一个对操作的有效引用。现在我该如何运行它?


答案 1

您只需直接调用操作事件的方法:

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
    });
}

答案 2

如果要手动运行操作,可以生成 一个,并将其传递到必须实现的方法中,因为接口会扩展 。ActionEventactionPerformedActionActionActionListener


推荐