コンバータの実践的な使用手順については、チュートリアルを参照してください。
S2Swingで定義済みのコンバータアノテーションは、以下の通りです。 各アノテーションの詳細はAPIドキュメントを参照してください。
アノテーション名 | 内容 |
---|---|
@DateToString | Date型とString型の相互変換を行います。 |
@NumberToString | 数値型とString型の相互変換を行います。 |
@Trim | 文字列から先頭と末尾の空白を削除します。 |
コンバータは通常、バインディングと併用することになります。 バインディングでは、ソースプロパティが変更された場合は正方向、ターゲットプロパティが変更された場合は逆方向に変換が行われます。 変換が成功すれば、その値がバインディング先に代入されます。変換が失敗した場合、代入は行われません。
変換の結果はBindingStateEvent型のイベントとして、BindingStateListenerリスナーに通知されます。 このリスナーに、エラーメッセージの表示処理などを記述します。
以下の手順にしたがって、独自のコンバータを定義することができます。
org.jdesktop.beansbinding.Converterクラスを継承し、コンバータクラスを作成します。
変換を行いたいモデルクラスのプロパティに対し、定義済みコンバータアノテーションの代わりに @CustomConverterアノテーションを付加し、独自に作成したコンバータクラス名を引数で指定します。
例えば、ModelクラスのaddressプロパティにMyConverterというコンバータクラスを適用したい場合には、
public class Model { @CustomConverter(type = MyConverter.class) private String address; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
のように指定します。