Archive for 7 月, 2008

JSR296 on NetBeans その16

金曜日, 7 月 18th, 2008

前回つくった Swing アプリケーションを NetBeans に搭載された JSR296 を使用してつくってみます。

プロジェクトの設定を下図のようにします。

64 

次にプロジェクトのプロパティを設定します。

65

66 

GUI ビルダーを使用して下図のようにレイアウトします。

67 

ボタンにアクションを設定します。

jButton1 を右クリックして [ アクションを設定... ] をクリックします。

68 

設定ウィンドウが表示されます。

69 

下図のように設定します。

70 

設定が完了するとコードエディタにジャンプします。

@Action アノテーションのついたメソッドが自動生成されてます。

 

71 

下記のようにイベント処理を記述します。

72

 

アクションイベントを実行するための(リソースファイルを使用して)コードが生成されます。

 

73 

同じように jButton2 のアクションを設定します。

74 

75 

76 

これでアプリケーションは完成です。

さっそくプロジェクトを実行してみましょう。

77 

78 

79 

ちゃんとうごきました(^^)

リソースファイルの Swing_type_newView.properties ファイルを確認します。

80 

ボタンコンポーネントのテキスト、アイコン、ツールチップの情報が自動生成されてます。

非常に便利ですね(^^)

@Action アノテーションによってメソッド名をキーにこれらのリソースファイルにアクセスできるわけです。

今更ですがアノテーションによって Java 言語は便利になったと思う。

さて、JSR296 を使用しない普通の Swing アプリケーションのイベント処理コードをもう一度みてみましょう。

81

82 

さて、どちらがいいでしょうか?

個人的には NetBeans のような強力な GUI ビルダーを搭載している統合開発環境を使うのであれば

どちらでもいいような気がします。

メニューバーやらステータスバー、プログレスバーなどをはじめ、いたれりつくせりなんだけど・・・

じゃあ、JSR296 の魅力って大したことないのだろうか?

もう少し、調べてみたほうがいいようです。

ボタンに使用しているアイコンは NetBeans 日本語コミュニティのマスコットです。

http://ja.netbeans.org/nekobean

作者はカネウチカズコさんです。

http://blog.cgfm.jp/mutsuki/

とても可愛いキャラクターで人気者です。

JSR296 on NetBeans その15

水曜日, 7 月 16th, 2008

NetBeans を使って簡単な Swing アプリケーションをつくってみます。

まず、今までの普通の Swing アプリケーションをつくります。

テキストエリアとボタンが二つだけのシンプルなもので、

[ Plz Click me! ] ボタンが押されたらテキストエリアに文字を追加する。

[ Clear ] ボタンが押されたらテキストエリアをクリアするというものです。

NetBeans の GUI ビルダーを使用して簡単に作成できます。

コードは下記のようになります。(GUI の自動生成部分は折りたたんで非表示になってます)

 

プロジェクトを実行すると下図のように動きます。

62

63 

簡単に作成できました。

ボタンに使用しているアイコンは NetBeans 日本語コミュニティのマスコットです。

http://ja.netbeans.org/nekobean

作者はカネウチカズコさんです。

http://blog.cgfm.jp/mutsuki/

とても可愛いキャラクターで人気者です。

さて、これを NetBeans に先行導入された JSR296 を使用してつくったらどうなるのか?

それは、また今度(^^; 試してみます。

おそらく簡単にできます。

いや、間違いなく簡単にできます。

Google Android

木曜日, 7 月 10th, 2008

今日、本屋に立ち寄って何気に見ていたら Google Android の参考書が平積みになっていた。

ちょっと驚いた!

普通こんなマイナーPC関連の雑誌は平積みになってないからだ。

オフィス系の参考書やフォトショップ、HP作成ソフトの参考書が買ってくださいとばかりに平積みにされてます。

その中に何故か! 著者と本屋さんが何らかの関係があるのだろうか?

ちょこっとパラパラと捲ってみたがプログラミング言語は Java のようだ。

Google Android SDK を Eclipse に組み込んで使うようだ。

NetBeans に Google Android SDK のプラグインってまだなかったかな?

近い将来、私のおもちゃが一つ増えるような気がします。(^^)

JSR296 on NetBeans その14

月曜日, 7 月 7th, 2008

DesktopApplication1AboutBox の JButton についてさらに調べてみます。

今回は NetBeans と言えば GUI 操作で簡単に開発できるというところに焦点を当てて見てみます。

まず、JButton のプロパティを表示させます。

45 

text に Close が設定されてます。

右端の [...] ボタンを押します。

下図のように Close! と変更してみます。

46 

予想通りの結果です。

ボタンのテキストが Close! と変わってます。

47 

リソースファイルの DesktopApplication1AboutBox.properties ファイルを見てみましょう。

ファイルの最後に下記のコードが追加されました。

うーん・・・ ちょっと変。

変更前はこんなの無かった・・・

48 

text プロパティを元に戻し、action を見てみよう。

CloseAboutBox となってます。

また右端の [...] ボタンを押します。

49 

今まで見たことのないものが出てきました。

ヘルプがあるので詳しくはそれを参照してください。

そのヘルプによるとビジュアルコンポーネントのアクションを表すのに使用するテキストを

属性の基本タブ、テキスト欄に記入すればいいらしい。

50 

下図のように Close!! と変更してみた。

51 

おや! text のプロパティ値が Close!! に変わってる。

52 

こちらも予想通りに Close!! に変わってます。

53 

DesktopApplication1AboutBox.properties ファイルも Close!! に変更されてます。

54 

どうやら action プロパティの設定画面で設定するのがいいようですね。

とりあえず、ざーっと調べてみたので簡単なプログラムを組んで試してみよう。

JSR296 on NetBeans その13

日曜日, 7 月 6th, 2008

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

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 操作でちょこっといじってみたいと思います。

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