torutkのブログ

ソフトウェア・エンジニアのブログ

NetBeans 6のDesktop ApplicationでBindingを使うと

 NetBeans 6では、プロジェクトの種類でJava Desktop Applicationを選択すると、Swingのほかに、Swing Application Framework(JSR-296)とBeans Binding(JSR-295)の2つの拡張フレームワークを使ったプログラム作成ができます。

 Swing Application Frameworkは登場の頃から興味をもっていじっており、自分用メモをこちらのページにまとめ中です。(NetBeansは使わずコーディングオンリー)

最近Beans BindingもNetBeans 6のGUIデザイナー上で使ってみました。最初の印象は、
「なんだこれは?とっつきが悪く、しかもGUIデザイナの生成するコードを見るとますます訳が分からなくなる厄介なフレームワークだ」
といったところで、ドキュメントも少なくましてNetBeans上で扱う方法はもっと少ない状況でした。しかし、試行錯誤でいじっていくうちに、なんとか基礎的な設定までならできるようになってきました。しばらく触らないと忘れそうなので、こちらのページに執筆中。

デスクトップ・アプリケーションにおけるプログラムの設計をどうするか(MVC的な設計構造をJava/Swingではどう実現するのがよいか)をここ何年か悩んでいますが、バインディングを使ってビューとモデルを疎結合にする・かつ相互に更新情報を伝播するという矛盾する目標を実現する有力な方法ではないかと思い始めています。

 実際に、アプリケーションのデータを作る際は画面なんか気にせずに、JavaBeans仕様に沿って作っておけば(正確にはJavaBeans仕様の一部であるバウンド・プロパティだけ満たしていれば)、後から画面を作ってデータの読み書き(データの変更をビューに反映するところも)を設定(コーディングレス)するだけとなります。

 まだまだ荒削りなフレームワークですが、これが1、2年の歳月をかけて洗練されていってJDK 7の標準機能となればいいなと思います。