2

クラスがあるとします:

class Boy
{
      int age = 25;
}

Boy の「age」インスタンス フィールドを更新する JTextField age があります。あるいは、男の子の年齢が別の方法 (おそらく setAge() ) で変更された場合、この変更を JTextField に反映できるようにする必要があります。

オブザーバー パターンを使用するのも 1 つの方法です。この場合、新しいクラス JTextFieldThatObserves (JTextField から継承し、Observer を実装する) を作成する必要がありますか?

デフォルトの JTextField では、必要なことを実行できませんか?

4

2 に答える 2

1

Java には、Swing コンポーネントとオブジェクトのフィールドの自動バインド フレームワークが付属していません。これは、その主要な欠陥の 1 つです。

残念ながら、これを行う唯一のメカニズムは、ウィジェットとオブジェクトの両方でオブザーバー パターンを使用し、無限サイクルに注意することです。

このような場合に役立つことの 1 つはPropertyEditor、無数の異なるリスナー/イベント クラスを作成する必要がなくなることです。

于 2010-11-16T21:45:48.773 に答える
0

この種のことを些細な量以上で行う場合は、Java で使用できるバインディング フレームワークの 1 つを学ぶために少し時間を費やすことを強くお勧めします。私は個人的にBetter Beans Bindingsを使用しています。

于 2010-11-17T05:54:48.857 に答える