torutkのブログ

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

NetBeans 6のパレットに自作JavaBeansを追加する

NetBeans 6のJavaデスクトップ・アプリケーションでGUIプログラムを作成する場合、モデル・ビューの分離を図る方法の1つにモデルをJavaBeansで表現するのが有効に思えます。その際、ビューのデザイン画面上に自作のBeanをドロップしてバインディングGUIコンポーネントと関連付けられるとうれしいので、その方法を模索してみました。

パレットに登録できるBeanの作成

NetBeans 6のGUIデザインで使用するパレットには、クラスファイルならBeans仕様にあっていなくても登録はできてしまいます。方法は、Beanとして作成したクラスをプロジェクトビューの各ソースファイルを右クリックし[ツール]→[パレットに追加...]でパレットに追加です。

このパレットに登録したクラスをGUIのデザイン画面にドラッグ&ドロップしたところ、ドロップしたらGUIのViewクラスの属性として生成されるもの、ドロップしても何も発生しないものがありました。

どうやらBeanクラスをインスタンス化する際(すなわち引数なしのデフォルトコンストラクタを呼び出した際)に、JavaSE以外のクラスを使用しているときに、ドロップしても何も発生しない場合があるようです。

Beanを作ったプロジェクト側、BeanをドロップしたいView側の双方にクラスライブラリを追加しても状況は変わりません。このとき、プロジェクトのJARにはライブラリが含まれていません。distディレクトリの下にlibディレクトリが生成されておらず、生成されたJARファイルのマニフェストのClass-Path:属性がありません。

新たにプロジェクトを作り直し、JARファイルにJavaSE以外のクラスも含まれるようにしたところ、問題は発生しなくなりました。