JavaBeansコンポーネント・テクノロジにより、Javaオブジェクトのデータ取得、永続性および操作に対して独自のフレームワークを実装できます。JavaBeansテクノロジは、JavaアプレットおよびJavaクライアント・アプリケーションのビルドに再利用可能なソフトウェア・コンポーネントを作成するために使用できます。Java EEアプリケーションでは、アプレットおよびアプリケーション・クライアントは、Web層コンポーネントを介してビジネス層コンポーネントと直接または間接的に通信できます。たとえば、ブラウザで実行されているクライアントは、JSPページまたはサーブレットを介してビジネス層と通信します。
JavaBeansコンポーネントはJava EE仕様ではJava EE Webコンポーネントとみなされませんが、JavaBeansコンポーネントは、サーバー・コンポーネントとクライアント層のアプリケーション・クライアントまたはアプレット間、またはサーバー・コンポーネントとバックエンドのデータベース間のデータ・フローを処理するために使用されます。
JavaBeansの基本的な概念、JavaBeansの作成、Beanの構成要素など、JavaBeansの詳細は、http://download.oracle.com/javase/tutorial/javabeans/
を参照してください。チュートリアルには、簡単なBeanの記述、Beanのプロパティ、イベントの操作、その他に関する演習も含まれています。
JavaBeansは、Swing GUIビルダーでプログラムのビルドに使用されるJava構成要素です。各JavaBeanは、ユーザー・インタフェース・オブジェクト、データ対応コントロールまたはシステム機能などのプログラム要素を表します。これらの要素を選択および連結してプログラムを構築します。
今後のUI設計作業の高速化を図るために、「コンポーネント」ウィンドウに追加したり、変更なしで(または軽微な変更のみで)再利用できるJavaBeanコンポーネント(ツールバー、ステータス・バー、チェック・ボックス・グループまたはダイアログ・ボックスなど)を作成します。
JavaBeansは、trueオブジェクト指向プログラミング(OOP)の観念におけるオブジェクトです。trueオブジェクトであるため、JDeveloperコンポーネントには次の特徴があります。
一部のデータ・セットおよびデータアクセス機能のカプセル化。
スーパークラスからのデータおよび動作の継承。
共通スーパークラスから導出された他のオブジェクトと置き換えても同じように機能する多相性。
各コンポーネントは、ウィンドウやダイアログ・ボックス、データベース内のフィールドまたはシステム・タイマーなどの一部のプログラム要素をカプセル化します。ビジュアル・コンポーネントは、最終的にjava.awt.Component
またはそこから導出される他の一部のクラス(javax.swing.Panel
など)を拡張する必要があります。非ビジュアルJavaBeansコンポーネントではこれは必要ありません。
JDeveloperで認識および使用されるためには、コンポーネントがJavaBeans仕様に準拠している必要があります。
プログラムで役立つために、JavaBeanは、その他のコンポーネントにより操作またはこれらのコンポーネントと対話できる手段を提供する必要があります。JavaBeansは、プロパティ、メソッドおよびイベントを定義することでこの要件を満たします。
すべてのコンポーネントには、プロパティ、メソッドおよびイベントが組み込まれています。コンポーネントが提供する一部のプロパティ、メソッドおよびイベントは、実際には祖先のクラスから継承されます。つまり、これらの要素をその他のコンポーネントと共有することを意味します。たとえば、UIコンポーネントはすべて、コンポーネントの背景色を表すbackground
というプロパティを継承します。各コンポーネントは、独自の一意のプロパティ、メソッドおよびイベントを導入することもできます。たとえば、Swingチェック・ボックス・コンポーネントには selected
というプロパティがあり、このコンポーネントが初期状態で選択されて表示されるかどうかを示します。
GUIビルダーでは、イベントは主としてイベント処理メソッドとして表示されます。このイベント処理メソッドは、コンポーネントが含まれているクラスに実装する必要があります。たとえば、NewJFrame
というコンテナにjButton1
というボタンがあり、エンド・ユーザーがjButton1
をクリックしたときに動作が発生するようにしたいとします。
イベント処理メソッドを実装する手順は次のとおりです。
エンド・ユーザーに対して、「プロパティ」ウィンドウの「イベント」ページに表示されるjButton1
のすべての潜在的イベントが表示されます。コンポーネントの作成者は、コンポーネント・クラスを作成する際に、そのクラスで生成されるすべてのイベントが「プロパティ」ウィンドウに表示されるようにする責任があります。Beanを使用するためにエンド・ユーザーに必要なことは、イベント処理メソッドのコードを記述することのみです。
バックグラウンドで、JDeveloperはイベント・リスニングの他の側面を処理する追加コードもFrame1.java
ファイルに生成します。
ActionListener
インタフェースを実装するアクション・アダプタの匿名の内部クラスを生成します。
これによってFrame1
でのクラスがインスタンス化されます。
button1.addActionListener()
をコールすることにより、自分自身をbutton1イベントのリスナーとして登録します。
このコードはすべてソース・ビューに表示されますが、主たるタスクは、イベント発生時にアクション・アダプタによってコールされるイベント処理メソッドを記述することです。
「リスナー生成スタイル」プロパティの説明。そのデフォルト値はSwing GUIビルダーのプリファレンスに含まれていて、ヘルプですでに説明済です。このデフォルト値は、新規に作成されたGUIフォームに使用されます。この値は、フォーム別に変更可能です。GUIフォームを開き、「構造」ウィンドウでこの値のrootノードを選択し、さらに「コード生成」プロパティで「リスナー生成スタイル」プロパティを設定します。
JDeveloperによるアダプタ・クラスの生成方法を制御するには、「プロジェクト・プロパティ」ダイアログの「コード・スタイル」ページから目的のオプションを選択します(詳細は、「個別プロジェクトのプロパティの設定方法」を参照)。
イベント・セットは、イベントのタイプ、イベントの通信内容、およびイベントの生成およびリスニングに必要な要素を定義します。カスタム・イベントのセットを作成し、そのイベントをサポートするEventListener
インタフェースとEventObject
クラスを作成できます。イベント・リスナー・インタフェースは、イベント・セットのイベントを記述します。
イベント・セットを作成するには、次のようにします。