バインディングの実践的な使用手順については、チュートリアルを参照してください。
Beans Bindingでは、バインディング対象となるオブジェクトの状態変更を監視する場合、 setterメソッド内で以下のようにしてPropertyChangeEventの発行をサポートする必要があります。
public class Model { private PropertyChangeSupport support = new PropertyChangeSupport(); private int value; ... public void setValue(int value) { if (value == this.value) { return; } int oldValue = this.value; this.value = value; support.firePropertyChange("value", oldValue, value); } }
この煩雑な記述を自動化するのがObservableBeansクラスです。ObservableBeans.create()メソッドを使用して JavaBeansオブジェクトを作成すると、setter中にPropertyChangeEventの発行処理が埋め込まれたプロキシオブジェクトを得ることができます。
JListとのバインディングには、以下のバリエーションがあります。
JListの選択可能項目に対してバインディングを行うには、以下のようにします。
現在のBeans Bindingの仕様により、選択可能項目とのバインディングは読み取り専用(モデル→JList方向のみ)となります。
JListの単一選択値に対してバインディングを行うには、以下のようにします。
現在のBeans Bindingの仕様により、単一選択値とのバインディングは書き込み専用(JList→モデル方向のみ)となります。
JListの複数選択値に対してバインディングを行うには、以下のようにします。
現在のBeans Bindingの仕様により、複数選択値とのバインディングは書き込み専用(JList→モデル方向のみ)となります。
JComboBoxとのバインディングには、以下のバリエーションがあります。
JComboBoxの選択可能項目に対してバインディングを行うには、以下のようにします。
現在のBeans Bindingの仕様により、選択可能項目とのバインディングは読み取り専用(モデル→JComboBox方向のみ)となります。
JComboBoxの選択値に対してバインディングを行うには、以下のようにします。
JTableとのバインディングには、以下のバリエーションがあります。
JTableのテーブルデータに対してバインディングを行うには、以下のようにします。
現在のBeans Bindingの仕様により、選択可能項目とのバインディングは読み取り専用(モデル→JTable方向のみ)となります。
JTableの単一選択行に対してバインディングを行うには、以下のようにします。
現在のBeans Bindingの仕様により、単一選択行とのバインディングは書き込み専用(JTable→モデル方向のみ)となります。
JTableの複数選択行に対してバインディングを行うには、以下のようにします。
現在のBeans Bindingの仕様により、複数選択行とのバインディングは書き込み専用(JTable→モデル方向のみ)となります。