今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

IDEでswing

id:dotさんのGUIデザイナにコメントしようかと思ったけど、長くなりそうな気がしたのでこちらで。
RADで互換性の低い短命なGUIアプリケーションを生産し、使い捨てると言うのもひとつの案かも。使い捨てと割り切ってしまえば、過去の遺産に引きずられることもないし、互換性を考慮する工数もいらないからトータルコストを抑えられるケースもあるかもしれない。
でも、もし寿命の長いswingアプリケーションを作ろうとしているのなら、参考になると思うことをだらだらと書いてみる。
まず、IDEを使うときの注意は、アプリケーションをIDEに依存させないこと。IDEにはいろいろと便利なコンポーネントがついてたりするんだけど、そういうのを使ってしまうとそのIDEなしでは開発ができなくなってしまう。ワタシも以前、これで失敗したことがある。
Javaのバージョンが上がったときに、IDEが対応するまで新しいバージョンでの開発ができないってこともあった。(Javaの互換性ってあまりあてにならない。)
NetBeansの使い勝手にいい印象を持ってないみたいだけど、それってもしかしてExcelのセルにコンポーネントをレイアウトしていくようなことを指している?としたら、それはNetBeansのやり方が正しい。id:agt さんが紹介してくれた JAVA PRESS vol.35 の記事にも書いたけど、GridBagLayout を基本にしているからそうなる。
GridBagLayout を使わないと、プラットフォームが違ったり、開発時と異なるL&Fを使ったときに、きちんと表示できないことがある。ま、GridBagLayoutを使おうとするとそれなりに学習コストはかかるけど、保守を考えると最初から採用しておくべき。
あと、GUIデザイナを使うと、MVCになりにくいので要注意。GUIデザイナで画面に貼り付けたボタンをクリックし、自動生成されたスケルトンメソッドにコードを書いてしまうと、ViewにContollerやModelが張り付く。設計しないでもコードが書けるというのは、設計が存在しないと言う大きな落とし穴。
で、そうやって作ったつもりが、J2SE1.3 から J2SE1.4 に変わったときに swing の仕様が変わったため、一部が動かなくなってしまった罠。