モジュール java.desktop

パッケージjava.beans


パッケージjava.beans
beansの開発に関連するクラスが含まれます -- JavaBeansアーキテクチャに基づくコンポーネント。 一部のクラスは、アプリケーションの実行中にBeanによって使用されます。 たとえば、イベント・クラスは、プロパティと拒否可能な変更イベントをトリガーするBeanによって使用されます(PropertyChangeEventを参照)。 しかし、このパッケージに含まれるほとんどのクラスは、Beanエディタ(アプリケーションを作成するためにBeanのカスタマイズおよび組み合わせを行う開発環境)用です。 こうしたクラスを使用すれば、BeanエディタでBeanのカスタマイズ用ユーザー・インタフェースを簡単に作成できます。 たとえば、Beanエディタでは処理できない特殊な型のプロパティを持つBeanがあるとします。 この場合、Bean開発者はPropertyEditorインタフェースを使って、この特殊な型のエディタを提供できます。

Beanによる消費リソースを最小限に抑えるため、Beanエディタによって使用されるクラスが読み込まれるのは、Beanの編集時だけとなります。 アプリケーションでBeanが実行されているときは必要ないため、読み込まれません。 この情報は、Bean情報(BeanInfoを参照)に保管されます。

明示しない限り、null値または空の文字列は、このパッケージのメソッドで有効なパラメータではありません。 そのようなパラメータが使用されると、例外が発生する可能性があります。

長期持続性

バージョン1.4のjava.beansパッケージは、プロパティ値のテキスト表現としてBeanの読み込みおよび書込みを行うことにより、長期持続性をサポートしています。 プロパティ値をBeanとして、読込みや書込みを繰返し行うことにより、その公開可能状態を取得できます。 この方式は、変更の可能性がある非公開の実装ではなく公開のAPIだけに依存しているため、長期記憶に適しています。

ノート: この持続スキームは、イベント・ハンドラを使用する場合のように、内部カスタム・クラスのインスタンスを自動的に作成することはできません。 この問題を回避するには、カスタム・イベント・ハンドラの内部クラスの代わりにEventHandlerクラスを使用します。

XML形式のBeanの読み込みおよび書込みを行なうには、XMLDecoderクラスおよびXMLEncoderクラスをそれぞれ使用します。 持続スキームには、Beanに関する特別な知識がなくてもBeanに情報を読み込めるという特徴があります。

一方、Beanから情報を書き出すときは、Beanの型に関する知識が必要になることがあります。 引数なしのコンストラクタとプロパティの公開取得/設定メソッドだけでBeanの状態を表現できる場合、Beanに関する特別な知識は不要です。 それ以外の場合、Beanには、カスタマイズされた持続的な委譲 (特定の型のBeanを書き出すオブジェクト)が必要です。 JDKのクラスのうち、java.awt.Componentの下位にあるものはすべて、プロパティと持続的な委譲を備えています。

Beanに持続的な委譲を提供する必要がある場合は、DefaultPersistenceDelegateのインスタンスを使用するか、PersistenceDelegateのサブクラスを作成します。 プロパティ値を引数としてBeanのコンストラクタを呼び出したいという理由だけで持続的な委譲が必要な場合は、引数を1つだけ取るDefaultPersistenceDelegateコンストラクタを使って持続的な委譲を作成できます。 それ以外の場合は、通常、次のクラスを必要とする固有の持続的な委譲を実装する必要があります。

PersistenceDelegate
すべての持続的な委譲の派生元抽象クラス。 サブクラスは、Beanの型情報を使って、Beanの作成とその状態の復元に必要なStatementおよびExpressionを提供します。
Statement
オブジェクト上の単一のメソッドの呼出しを表します。 そのメソッドに対する引数のセットを含みます。
Expression
値を返すメソッド用のStatementのサブクラス。

持続的な委譲を作成したら、XMLEncodersetPersistenceDelegateメソッドを使って登録します。

関連項目

概要、アーキテクチャ、およびチュートリアルについては、下記を参照してください。
  • クラス
    説明
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    Applet APIは非推奨です。
    BeanDescriptorは、BeanのJavaクラスやdisplayNameなど、Beanに関するグローバル情報を提供します。
    BeanInfoクラスを作成し、Beanのメソッド、プロパティ、イベントおよびその他の機能に関する明示的な情報を提供するには、BeanInfoインタフェースを使用します。
    自動的に生成されたBeanInfoクラスのプロパティ関連情報を指定するために使用される注釈。
    このクラスは、いくつかの多目的Bean制御メソッドを提供します。
    コンストラクタの注釈。構築されたオブジェクトのgetterメソッドにこのコンストラクタのパラメータがどのように対応するかを示します。
    カスタマイザ・クラスは、ターゲットJava Beanをカスタマイズするための完全なカスタムGUIを提供します。
    DefaultPersistenceDelegateは、抽象クラスPersistenceDelegateの具象実装であり、情報の得られないクラスがデフォルトで使用する委譲です。
    このインタフェースは、java.beans.beancontext.BeanContextChildのインスタンスの入れ子になっている階層に現在のdesignTimeプロパティを送るために、java.beans.beancontext.BeanContextのインスタンスによって実装、またはjava.beans.beancontext.BeanContextのインスタンスから委譲されます。
    Encoderは、公開APIに関して複数のJavaBeansの状態をエンコードするファイルまたはストリームを作成する際に使用できるクラスです。
    EventHandlerクラスは、受信イベント・オブジェクトとターゲット・オブジェクトを含んだ単純な文を実行するメソッドを持つ、イベント・リスナーの動的生成をサポートします。
    EventSetDescriptorは、指定されたJava Beanがトリガーするイベントのグループを記述します。
    ExceptionListenerは、内部例外の通知を受け取ります。
    Expressionオブジェクトは、"a.getFoo()"のように、ターゲットと一連の引数に単一のメソッドが適用されて、結果が返されるプリミティブな式を表します。
    FeatureDescriptorクラスは、PropertyDescriptor、EventSetDescriptor、MethodDescriptorなどの共通基底クラスです。
    JavaBeans仕様(a "bean")に準拠するコンポーネントがバインドされた索引付きプロパティを変更するたびに、"IndexedPropertyChange"イベントが配信されます。
    IndexedPropertyDescriptorは、配列と同様の機能を持つプロパティを記述するとともに、配列内の特定の要素へのアクセスに使用するインデックス付きの読込みメソッドや書込みメソッドを備えています。
    イントロスペクション中に例外が発生した場合にスローされます。
    Introspectorクラスは、ツールに対して、ターゲットJava Beanがサポートするプロパティ、イベント、メソッドについて学習する標準的な手法を提供します。
    自動生成されたBeanInfoクラスのいくつかのクラス関連情報を指定するために使用される注釈。
    MethodDescriptorは、その他のコンポーネントからの外部アクセスのためにJava Beanでサポートされる特定のメソッドを記述します。
    ParameterDescriptorクラスでは、Beanの実装者が各自のパラメータのそれぞれについて、java.lang.reflect.Methodクラスで提供される低レベルの型情報だけでなく、追加情報を提供できます。
    PersistenceDelegateクラスは、クラスの公開APIに含まれるメソッドによって、指定されたクラスのインスタンスの状態を表現します。
    PropertyChangeイベントは、Beanが「バウンド」プロパティまたは「制約」プロパティを変更するたびに送信されます。
    PropertyChangeイベントは、Beanが「バウンド」プロパティを変更するたびにトリガーされます。
    特に「バウンド」プロパティを使ってPropertyChangeListenerを追加するためにEventListenerProxyを拡張するクラス。
    バウンド・プロパティをサポートするBeanで使用できるユーティリティ・クラスです。
    PropertyDescriptorは、Java Beanが一対のアクセス用メソッドを使ってエクスポートする単一のプロパティを記述します。
    PropertyEditorクラスは、ユーザーが指定の型のプロパティ値を編集するためのGUIのサポートを提供します。
    PropertyEditorManagerは、指定された型名のプロパティ・エディタを見つけるために使用できます。
    プロパティ・エディタを構築するためのサポート・クラスです。
    PropertyVetoExceptionは、プロパティに対して推奨される変更が受け入れられない値である場合にスローされます。
    ユーザーがBeanInfoクラスを提供しやすくなるようにするサポート・クラスです。
    Statementオブジェクトは、"a.setFoo(b)"のように、ターゲットと一連の引数に単一のメソッドが適用されるプリミティブな文を表します。
    Introspectorが注釈付きのコード要素に関連付けられたPropertyDescriptorまたはEventSetDescriptorクラスを構築する際に、「transient」と呼ばれる属性が指定のvalueで宣言されるべきであることを示します。
    VetoableChangeイベントは、Beanが「制約」プロパティを変更するたびにトリガーされます。
    特に「制約」プロパティを使ってVetoableChangeListenerを追加するためにEventListenerProxyを拡張するクラス。
    制約プロパティをサポートするBeanで使用できるユーティリティ・クラスです。
    使用する環境によっては、BeanはGUIを使えないサーバー上での実行も可能です。
    XMLDecoderクラスは、XMLEncoderを使って作成されたXMLドキュメントの読取りに使用され、ObjectInputStreamと同様に使用されます。
    XMLEncoderクラスは、ObjectOutputStreamの補足的な代替であり、ObjectOutputStreamを使ってSerializableオブジェクトのバイナリ表現を作成できるのと同じ方法でJavaBeanのテキスト表現を生成するために使用できます。