S2Swing

アクション - S2Swing リファレンス

アクションの実践的な使用手順については、チュートリアルを参照してください。

@S2Actionアノテーション

@S2Actionは、Swing Application Frameworkの@Actionに相当するアノテーションで、メソッドをアクションハンドラ化する機能を持ちます。 @S2Actionアノテーションは@Actionと比較して、アクションの実行可能状態(enabled)と選択状態(selected)をよりスマートに記述できるという特徴があります。

@S2Actionアノテーションを付与するメソッドは、以下の要件を満たす必要があります。

また@S2Actionアノテーションには、オプションとして以下の引数を指定可能です。

引数名 説明
enabled アクションの実行可能条件を評価する式。メソッドを所有するオブジェクトを評価の基点としたOGNL式で記述します。
property アクションが選択状態となる条件を評価する式。メソッドを所有するオブジェクトを評価の基点としたOGNL式で記述します。
block アクションを非同期実行する場合、そのブロッキングレベル。NONE, ACTION, COMPONENT, WINDOW, APPLICATIONのいずれかを指定します。

@ActionTargetアノテーション

アクションと特定のUIコンポーネントを結び付ける場合、@ActionTargetアノテーションを使用することができます。 AbstractButtonクラスを継承したコンポーネント(JButton, JToggleButton, JMenuItemなど)のフィールドに対して@ActionTarget アノテーションを付与すると、そのコンポーネントにアクションが自動設定されます。

例えば以下のコードでは、buttonコンポーネントにfooアクションが設定されます。

public class MyFrame extends S2Frame {
    @ActionTarget("foo")
    private JButton button = new JButton();

    @S2Action
    public void foo() {
        // ...
    }
}

アクションマップ

アクションをUIコンポーネントに対して手動で設定する場合は、S2FrameクラスやS2Dialogクラスが持つgetActionMap()メソッドを使用し、 アクションマップを取得します。アクションマップのget()メソッドで、@S2Actionアノテーションで定義されたアクションを取り出すことができます。

リソースファイル

アクションの表示テキストやショートカットキー、アイコンなどは、リソースファイルに記述します。書式は以下のようになります。

キー 内容
[actionName].Action.text テキスト。ボタンやメニュー項目のキャプションになります。
[actionName].Action.shortDescription 簡単な説明。ボタンやメニュー項目のツールチップテキストになります。
[actionName].Action.accelerator ショートカットキー。"ctrl A"のように指定します。
[actionName].Action.icon アイコン。画像ファイル名を、リソースファイルからの相対パスで記述します。
Copyright © 2008-2009 The Seasar Foundation and the others. All rights reserved.