web-dev-qa-db-ja.com

Swingでアクションを手動で呼び出すにはどうすればよいですか?

私の人生では、Javaスイングアクションの詳細を見つけることができないようです: '(それらに出会ったとき、私はすぐにそれらの有用性に気づきました。これまでのところ、すべて簡単に操作できました。小さなことで立ち往生しています:それらを手動で実行するにはどうすればよいですか?つまり、コードによるものですか?(違いがある場合は)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");

(デバッグを簡単にするために、すべてを別々の行に記述しました)

これで、アクションへの有効な参照ができました。どうすれば実行できますか?

26
exhuma

アクションを手動で実行する場合は、ActionEventを生成し、actionPerformedとして実装する必要があるActionメソッドにActionとして渡すことができます。インターフェイスはActionListenerを拡張します。

10
akf

アクションイベントのメソッドを直接呼び出すだけです。

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
    });
}
30
b1nary.atr0phy

ActionEventListener であるため、 EventListenerList の実装を検討してください。 =アクションを起動するメソッドを公開する方法として。

2
trashgod