S2Swing

バインディング - S2Swing リファレンス

バインディングの実践的な使用手順については、チュートリアルを参照してください。

ObservableBeansクラスの使用

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とのバインディングには、以下のバリエーションがあります。

選択可能項目

JListの選択可能項目に対してバインディングを行うには、以下のようにします。

現在のBeans Bindingの仕様により、選択可能項目とのバインディングは読み取り専用(モデル→JList方向のみ)となります。

単一選択値

JListの単一選択値に対してバインディングを行うには、以下のようにします。

現在のBeans Bindingの仕様により、単一選択値とのバインディングは書き込み専用(JList→モデル方向のみ)となります。

複数選択値

JListの複数選択値に対してバインディングを行うには、以下のようにします。

現在のBeans Bindingの仕様により、複数選択値とのバインディングは書き込み専用(JList→モデル方向のみ)となります。

JComboBoxとのバインディング

JComboBoxとのバインディングには、以下のバリエーションがあります。

選択可能項目

JComboBoxの選択可能項目に対してバインディングを行うには、以下のようにします。

現在のBeans Bindingの仕様により、選択可能項目とのバインディングは読み取り専用(モデル→JComboBox方向のみ)となります。

選択値

JComboBoxの選択値に対してバインディングを行うには、以下のようにします。

JTableとのバインディング

JTableとのバインディングには、以下のバリエーションがあります。

テーブルデータ

JTableのテーブルデータに対してバインディングを行うには、以下のようにします。

現在のBeans Bindingの仕様により、選択可能項目とのバインディングは読み取り専用(モデル→JTable方向のみ)となります。

単一選択行

JTableの単一選択行に対してバインディングを行うには、以下のようにします。

現在のBeans Bindingの仕様により、単一選択行とのバインディングは書き込み専用(JTable→モデル方向のみ)となります。

複数選択行

JTableの複数選択行に対してバインディングを行うには、以下のようにします。

現在のBeans Bindingの仕様により、複数選択行とのバインディングは書き込み専用(JTable→モデル方向のみ)となります。

Copyright © 2008-2009 The Seasar Foundation and the others. All rights reserved.