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