かずきのBlog
C#やJavaやRubyとメモ書き

目次

Blog 利用状況
  • 投稿数 - 426
  • 記事 - 1
  • コメント - 461
  • トラックバック - 112
ニュース
  • 思い出は、いっぱい。
コメント
プログラマ的自己紹介
  • C#とRubyを趣味で。Javaを仕事で使ってやってます。 WPFをコツコツ勉強中。 IDE大好き。Visual Studio, Eclipse, NetBeansを使用中
お気に入りのツール/IDE
  • Visual Studio 2008 std
  • Eclipse
  • NetBeans6.0以降
  • 自作のツール
プロフィール
  • 大田 一希
  • 1981年1月30日産まれ
  • AB型
  • 左利き
経歴
  • 1993年 海田中学校 入学
  • 1996年 広島県立安芸南高等学校 入学
  • 1999年 某大学 環境情報学科 入学
  • 2003年 某大学 大学院 環境学研究科 入学
  • 2005年 就職して上京
  • 今に至る
アクセサリ
  • あわせて読みたい
  • ログ解析ネット証券

書庫

日記カテゴリ

 

普段Javaのコードを書いてて思う。
マジックナンバーより定数。文字列なら定数よりもプロパティファイルから読み込む。
そんなのが素敵なアプリケーションの作り方だとわかっているけど、実態はめんどくさいのでハードコーディングしてしまいがちだったりする。特に、予定外のことをやるときとかにこの傾向が自分は強い。そういう傾向の人って結構いるような気がするんだけどどうだろう??

それは置いといて、Swing Application Frameworkを使ったアプリケーションを普通に開発してると、自動的にGUIに絡む部分の文字列はプロパティファイルに格納される。
すばらしい。

ということでちょびっと見てみる。
まず、ResourceStudyという名前でデスクトップアプリケーションを作る。そして、出来上がったウィンドウにラベルとボタンを置く。ボタンのアクションの設定からsayHelloというメソッドをイベントとして新規に登録する。テキストに「こんにちは」ツールチップに「こんにちはを表示する」を設定して了解をクリックする。
image 
sayHelloメソッドには、ラベルにこんにちはを表示するコードを書いておく。

    @Action
    public void sayHello() {
        jLabel1.setText("こんにちは");
    }

これで、実行してボタンを押すとラベルに「こんにちは」と表示されるアプリケーションが出来上がる。

ということで、プロパティファイルがどんな感じになってるか見てみる。
プロパティファイルは、対応するクラスの入っているパッケージのresourcesパッケージにクラス名と同じ名前で作られることになってる。
なので、この場合は、resourcestudy.ResourceStudyViewクラスに置いたラベルやボタンの情報を見たいので、resourcestudy.resources.ResourceStudyView.propertiesを見るのがいい。開いてみると、色々な文字列が書かれてるけど、最後のほうに下のような記述がある。

jLabel1.text=jLabel1
jButton1.text=jButton1
sayHello.Action.shortDescription=こんにちはを表示する
sayHello.Action.text=こんにちは

デザイナで設定した文字列等は、ここに自動的に出力されるようになっているのがわかる。
ありがたいことだ。

ただ、やっぱりというか当然のことだけど自分でプログラム中に文字列を埋め込むのはプロパティファイルに自動で記述されない。というか、勝手にされるとうざいことこの上ないだろう。
これは、残念なことに自分で手動でもってプロパティファイルに移動させないといけない。Eclipseだと、ここらへんも利ファクタリングでなんとかしてくれたような気がするが、ざっと見た感じNetBeansにそんな機能はなさそうだ。

ということで、プロパティファイルに一行追加する。

sayHello.output.message=こんにちは

そしてsayHelloメソッドを下のように書き換える。

    @Action
    public void sayHello() {
        jLabel1.setText(getResourceMap().getString("sayHello.output.message"));
    }

とまぁ、手動でやらなければならないところもあるけど、デザイナ上で指定した文字列とかはプロパティファイルに落とされるようになってるので、大分手間は軽減されるように思う。

以上!

投稿日時 : 2008年6月22日 23:39
コメント
No comments posted yet.
タイトル  
名前  
Url
コメント