JavaBeansテクノロジを使用すると、ビジネス層コンポーネントと直接またはWeb層コンポーネントを介して間接的に通信するJavaアプレットおよびJavaクライアント・アプリケーションをビルドするための、再利用可能なソフトウェア・コンポーネントを作成できます。
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のプロパティ、イベントの操作、その他に関する演習も含まれています。
Swing GUIビルダーを使用し、ユーザー・インタフェース・オブジェクト、データ対応コントロールまたはシステム機能などのGUIオブジェクトのJavaBeansを使用してプログラムをビルドします。JavaBeansは、操作や他のコンポーネントとの相互作用が可能なプロパティ、メソッドおよびイベントを定義し、カプセル化、継承およびポリモフィズムの特徴を持つtrueオブジェクトです。
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ビルダーでは、イベントはコンポーネントが含まれているクラスを実装するイベント処理メソッドです。イベント処理メソッドを実装する手順を使用してください。
GUIビルダーでは、イベントは主としてイベント処理メソッドとして表示されます。このイベント処理メソッドは、コンポーネントが含まれているクラスに実装する必要があります。たとえば、NewJFrame
というコンテナにjButton1
というボタンがあり、エンド・ユーザーがjButton1
をクリックしたときに、なんらかの動作を発生させたいとします。
イベント処理メソッドを実装する手順は次のとおりです。
エンド・ユーザーに対して、「プロパティ」ウィンドウの「イベント」ページに表示されるjButton1
のすべての潜在的イベントが表示されます。コンポーネントの作成者は、コンポーネント・クラスを作成する際に、そのクラスで生成されるすべてのイベントが「プロパティ」ウィンドウに表示されるようにする責任があります。Beanを使用するためにエンド・ユーザーに必要なことは、イベント処理メソッドのコードを記述することのみです。
JDeveloperは、アクション・アダプタの匿名内部クラスを生成し、Frame1でクラスをインスタンス化し、自身をbutton1イベントのリスナーとして登録することで、イベント・リスニングの各側面を処理するための追加コードをFrame1.java
ファイルに生成します。
バックグラウンドで、JDeveloperはイベント・リスニングの他の側面を処理する追加コードもFrame1.java
ファイルに生成します。
ActionListener
インタフェースを実装するアクション・アダプタの匿名の内部クラスを生成します。
これによってFrame1
でのクラスがインスタンス化されます。
button1.addActionListener()
をコールすることにより、自分自身をbutton1イベントのリスナーとして登録します。
このコードはすべてソース・ビューに表示されますが、主たるタスクは、イベント発生時にアクション・アダプタによってコールされるイベント処理メソッドを記述することです。
Swing GUIビルダーでは、「リスナー生成スタイル」プロパティのプリファレンスのデフォルト設定値を後から変更できます。「プロジェクト・プロパティ」ダイアログの「コード・スタイル」ページからオプションを選択して、アダプタ・クラスを生成します。
「リスナー生成スタイル」プロパティの説明。そのデフォルト値はSwing GUIビルダーのプリファレンスに含まれていて、ヘルプですでに説明済です。このデフォルト値は、新規に作成されたGUIフォームに使用されます。この値は、フォーム別に変更可能です。GUIフォームを開き、「構造」ウィンドウでこの値のrootノードを選択し、さらに「コード生成」プロパティで「リスナー生成スタイル」プロパティを設定します。
JDeveloperによるアダプタ・クラスの生成方法を制御するには、「プロジェクト・プロパティ」ダイアログの「コード・スタイル」ページから目的のオプションを選択します(「個別プロジェクトのプロパティの設定方法」を参照)。
イベント・リスナー・インタフェースは、イベントのタイプ、通知内容、イベントを生成し、リッスンするための要件を定義するイベント・セットのイベントを記述します。イベント・セットを作成する手順を使用してください。
イベント・セットは、イベントのタイプ、イベントの通信内容、およびイベントの生成およびリスニングに必要な要素を定義します。カスタム・イベントのセットを作成し、そのイベントをサポートするEventListener
インタフェースとEventObject
クラスを作成できます。イベント・リスナー・インタフェースは、イベント・セットのイベントを記述します。
イベント・セットを作成するには、次のようにします。
コンポーネントによってイベントが起動され、通知対象のコンポーネントに配信されます。コンポーネントがイベントを起動できるようにする手順を使用してください。
Beanを開発する場合、Beanで生成する必要があるすべてのイベントについて考慮する必要があります。コンポーネントが相互に通信する手段を「イベントの受渡し」といいます。コンポーネントはイベントを起動します。起動されたイベントは、通知の対象であるコンポーネントに配信されます。通知を受け取ったコンポーネントは、発生したイベントに基づいてアクションを実行できます。
コンポーネントをイベントが起動できるようにするには、次のようにします。