java.beans パッケージ
Java Beans は
Javaのコンポーネントを開発するための標準規格を提供する技術です。
JDK1.1 から、java.beansパッケージが正式に追加されました。
このパッケージには、Beansの規格に従ったコンポーネントを開発するために
必要な「カスタマイザ(Customizer)」「プロパティエディタ(PropertyEditor)」
などを記述するための基本となるクラスが提供されています。
なお実際に Beanそのもの、
もしくは Beanを使ってアプリケーションを開発するためには、
Java Beans の規格に従った開発ツールおよび開発環境のクラスライブラリも
必要となります。
JavaSoft からは BDKが提供されています。
java.beansには6個のインターフェイスと
15個のクラスが存在します。
その多くは Beansに固有の概念と結びついているので、
Java Beansの仕組みについての解説
も参照してください。
インターフェイスの一覧
- BeanInfo
- Customizer
- PropertyEditor
- PropertyChangeListener
- VetoableChangeListener
- Visibility
Bean は、その情報を取り扱うための BeanInfoのクラスを持つことができます。
(その名称は Beanの(Beanの中心となるクラスの)名称 + Info です。)
BeanInfoはそれらのクラスが実装すべき情報を与えます。
(通常はこのインターフェイスを実装した SimpleBeanInfo を extends します。)
「カスタマイザ(Customizer)」は、ある Beanが専用に用いる設計用のウィンドウです。
汎用の開発ツールの機能では Beanの設計に不十分な場合、
Customizerのインターフェイスを実装した専用のクラスを設計することになります。
「プロパティエディタ(PropertyEditor)」は、ある Beanの特定の型の Property
の値を設計するためのウィンドウです。
汎用の開発ツールには用意されていない独自の型の Propertyに対して、
PropertyEditorのインターフェイスを実装した専用のクラスを設計することになります。
Beanを設計中、プロパティの値が変更になった場合に、そのことを Bean自身、
および他のオブジェクトに通知する必要がしばしば生じます。
そのために専用のイベントを発生させますが、PropertyChangeListenerは
その通知を処理するための Listenerです。
プロパティの変更の通知を拒否する必要がある場合も生じます。
その場合に拒否できるように設定されたプロパティの変更を処理するための
Listenerが VetoableChangeListenerです。
Visibilityインターフェイスは、BeanがウィンドウのGUIを必要とするかどうかを
実行時に確認するための機能を提供します。
クラスの一覧
クラスはいくつかのグループに分けて解説します。
Beanに関する基本的な制御と情報を取り出すためのクラス
- Beans
- Introspector
- SimpleBeanInfo
Beansは Beanを操作する static なメソッドをいくつか提供します。
指定した名称のBean のオブジェクトの生成、
指定された名称の Beanであるかの判定、
現在開発ツールによって設計中の状態かどうかの判定、などを実行します。
Introspectorは Beanに対応する BeanInfoのクラスを探索するための
staticなメソッドを提供します。
(これらのメソッドは主に開発ツール内部で利用されます。)
SimpleBeanInfoは BeanInfoインターフェイスを実装したクラスで、
実際に BeanInfoのクラスを作成する際のスーパークラスに利用すると便利です。
BeanInfoクラスは、
プロパティ、イベントセット、メソッドに関する情報を取り出すための
手段を提供します。
Beanに関する詳細な情報を制御する FeatureDescriptorとそのサブクラス
- FeatureDescriptor
- BeanDescriptor
- EventSetDescriptor
- PropertyDescriptor
- IndexedPropertyDescriptor
- MethodDescriptor
- ParameterDescriptor
FeatureDescriptorは以下の6個のクラスの共通のスーパークラスです。
Beanから詳細な情報を制御するための手段を提供します。
BeanDescriptorは Beanの中心となるクラスおよび Customizerのクラスの情報
(Classのオブジェクト)を得るために利用します。
EventSetDescriptorは Beanが取り扱う固有のイベントに関連する情報を
得るために用います。Listenerを登録するためのメソッドや、
Listenerの名称などを調べるメソッドを提供します。
なお、Beanが取り扱う固有のイベントは、一般に複数存在することも許されます。
したがって返されるのは Methodや Listenerの配列になる点に注意してください。
PropertyDescriptorはプロパティの制御に関するメソッドを提供します。
プロパティの性質を制御したり、
プロパティの値を制御するメソッドの名称などを調べることができます。
IndexedPropertyDescriptorは PropertyDescriptorのサブクラスで、
プロパティの値が単独のデータではなく配列や Vectorのように複数のデータの
集合である場合に利用します。
MethodDescriptor は Methodの情報を、ParameterDescriptorは Methodのオブジェクト
の情報に追加する制御するためのクラスです。
ただし、現行のバージョンでは ParameterDescriptorは FeatureDescriptorに
新たに追加したメンバーを持ってはいません。
プロパティとプロパティエディタの制御に関連するクラス
- PropertyChangeEvent
- PropertyChangeSupport
- VetoableChangeSupport
- PropertyEditorSupport
- PropertyEditorManager
PropertyChangeEventはプロパティの変更が生じたことを伝えるためのイベントの
クラスです。(java.util.EventObjectの直接のサブクラスです。)
ProtpertyChangeSupportとVetableChangeSupportは、PropetyChangeEventの
Listenerの追加、登録、イベントの伝達のメソッドを提供します。
PropertyEditorSupportは PropertyEditorインターフェイスを実装し、
プロパティエディタが必要とする機能を提供します。
ProtertyEditorManagerは適切なプロパティエディタを得たり、
登録したりするための staticなメソッドを提供します。