JSR296 on NetBeans その13
今日はイベントを発生させることのできるコンポーネントについて調べてみます。
DesktopApplication1AboutBox クラスの JButton についてみてみます。
まず、どういうふうに JButton を生成しているのか見てみましょう。
そして、アクションの定義は
リソースファイルの DesktopApplication1AboutBox.properties ファイルは
となってます。
アクションの定義が非常にシンプルになってますね。
今までのスウィングアプリケーションとはまるで違います。
下記のコードがこの仕組みの鍵となってます。
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 操作でちょこっといじってみたいと思います。
そう、私は気になることは試して壊してしまうタイプなのです。(><)