【初心者】Java質問・相談スレッド93【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0315デフォルトの名無しさん
2006/11/01(水) 07:30:18コンポーネントが増えると、313の言うとおり収拾がつかなくなるからお勧めできない。
それよりも、コンポーネントの内容の更新をしたい状況をイベントとして定義して、
そのイベントを監視する側としてUI(で定義する無名クラス)を登録する方がいい。
いわゆるオブザーバパターン。
java.util.Observerとjava.util.Observableを使えば監視-被監視のモデルが簡単に実装できるけど、
インタフェースが気にくわないなら自分で定義してもいい。
自作する場合、AWTやSwingのXXXListenerインタフェースやaddXXXListener()メソッドが参考になる。
例を挙げてみよう。
データモデルHogeがあり、それを管理するHogeContainer、表示するHogeFrameがあるとする。
Hogeが別のUIで変更されたら、HogeFrameにも反映させたい。
そのときは、HogeFrameクラス側で、HogeContainerに対して以下のように実行する。
container.addHogeListener(new HogeListener(){
public void hogeModified(Hoge hoge){
fooText.setText(hoge.getFoo());
barText.setText(hoge.getBar());
}
}
■ このスレッドは過去ログ倉庫に格納されています