Swing Application Frameworkのアクションメソッド引数
Swing Application Frameworkのアクションメソッドは引数を持たないのが普通ですが、以下の型で引数を宣言しておくと、メソッド呼び出し時にフレームワークが適切なオブジェクトを代入してくれます。
- java.awt.event.ActionEvent
- javax.swing.Action
- javax.swing.ActionMap
- org.jdesktop.application.ResourceMap
- org.jdesktop.application.ApplicationContext
- org.jdesktop.application.Application
なお、メソッドに上記以外の引数が含まれるとエラーになります。
この中で特に便利なのはActionEventです。複数のコンポーネントでアクションを共有している場合、以下のようにアクションの呼び出し元を判別できます。
@Action public void doSomething(ActionEvent e) { Object source = e.getSource(); if (source == button1) { System.out.println("button1 clicked."); } else if (source == button2) { System.out.println("button2 clicked."); } }