Archive for 8 月 19th, 2007

BeansBinding

日曜日, 8 月 19th, 2007

この前 NetBeans6.0M10 を使用してBuilding a Java Desktop Database Application チュートリアルを試してみた。
今回は単純に JLabel と JTextField をバインドしてみることにした。
チュートリアルを参考に簡単につくってみた。

テキストフィールドに適当に文字を入力してエンターキーを押すとすぐにラベルの文字が変更される。

bt_2.JPG

NetBeans6.0M10 を使用すると簡単にできてしまう。(^^;
さて、これらの機能を実行するトリックはどうなってるのか見てみよう。
こんなものがある!

bt_3.JPG

Javadoc View で調べると

bt_4.JPG

と出てくる。

英語だ(><)

そこで翻訳ソフトに頼るとこう訳してくれる。

BindingContext がオブジェクト BindingContext に申し出る公共の階級が装丁のセットを処理します。
BindingContext はバインドにメソッドを提供する、そしてそれが含んでいる装丁のセットをほどいてください。
次の例は BindingContext に装丁を加えて、そしてそれをしばって例証します
: BindingContext 脈絡 = 新しい BindingContext () ;
context.addBinding (転送元、「${sourceExpression}」、対陰極、「targetPath」); context.bind () ;
BindingContext はそれが含んでいる装丁の状態を追跡するためにメソッドを提供します。
getHasUncommittedValues 方法は BindingContext に含まれる境界装丁のいずれでも uncommitedな価値を持っているかどうか決定するために使われるかもしれません。
同様に、 hasInvalidValues 方法は装丁のいずれでも現在無効であるかどうか決定するために使われるかもしれません。
これらのプロパティの両方ともが境界です;あるいはプロパティが変化するとき、 PropertyChangeListener が航跡追尾に BindingContext に属しているかもしれません。
BindingContext は同じく BindingListener を支えます。 装丁の翻訳あるいは妥当性検証が失敗するとき、 BindingListeners は通知されます。
無効値が入力されるとき、 BindingListener はユーザに帰還を提供する都合が良い方法を提供します。

うーん・・・ 素晴らしい翻訳内容だ(^^;

Javadoc をもとにソースをながめているとありました!
JLabel と JTextField をバインドするためのトリックが!!
さっきのが新しいバインディングコンテキストを作成するもので
次のこれがトリックの重要ポイントだ。
これによって JLabel と JTextField のバインドの設定がされる。

bt_5.JPG

なぜ? 第二引数にEL式を使うのでしょうか?
これのメリットが思い浮かばない(><)

次に

bt_6.JPG

これでバインドされるわけですね。

で、

bt_7.JPG

これがスタンバイされているようです。
NetBeans6.0 でGUIビルダーを使って作成するとこういったトリック(しくみ)を気にせずにお気軽にできてしまう。
これがいいことか悪いことかは意見の分かれるところでしょうが個人的にはGood! です。

そう、私はなまけものですから(><)