JSR296 on NetBeans その13

今日はイベントを発生させることのできるコンポーネントについて調べてみます。

DesktopApplication1AboutBox クラスの JButton についてみてみます。

まず、どういうふうに JButton を生成しているのか見てみましょう。

42 

43 

そして、アクションの定義は

41 

リソースファイルの DesktopApplication1AboutBox.properties ファイルは

44 

となってます。

アクションの定義が非常にシンプルになってますね。

今までのスウィングアプリケーションとはまるで違います。

下記のコードがこの仕組みの鍵となってます。

javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(desktopapplication1.DesktopApplication1.class).getContext().getActionMap(DesktopApplication1AboutBox.class, this);

closeButton.setAction(actionMap.get(“closeAboutBox”)); // NOI18N

closeButton.setName(“closeButton”); // NOI18N

javax.swing.ActionMap actionMap を取得してます。

これはこの前の org.jdesktop.application.ResourceMap resourceMap の取得と同じ考え方です。

ApplicationContext インスタンスの参照を取得します。

actionMap には @Action が付いたメソッドがメソッド名をキーとして保持されます。

よって、closeButton.setAction(actionMap.get(“closeAboutBox”));

これで、

@Action public void closeAboutBox() {

    setVisible(false);

}

と関係が結びつく訳ですね。

org.jdesktop.application.ResourceMap か javax.swing.ActionMap actionMap の違いと @Action メソッドの

関連付けが有るか無いかの違いだけのようです。

今日はここまでにして次は GUI 操作でちょこっといじってみたいと思います。

そう、私は気になることは試して壊してしまうタイプなのです。(><)

Tags: , ,

Leave a Reply