NOEMBLEM/エンブレムが設定されていません。

メールの詳細(メール表示)

件名:

about Sample in Mediator Pattern

差出人: 阿部 将典さん
送信日時 2002/05/11 17:35
ML.NO [DP/ML:1507]
本文:

阿部です。

結城さん、A23-1 の件における素早い対応ありがとうございました
。ついでと言っては何ですが、もう一つお願いします。

『Java言語で学ぶデザインパターン入門』の中のMediator パター
ンのサンプルプログラムですが、プログラム起動直後は Guest に
チェックが入っているのに OK ボタンが押せなくなります。

プログラムを読んでいる限りでは、とてもそんな事は起こり得ない
ように思えるのですが、println デバッグをしてみると、
LoginFrame.java のコンストラクタ内における pack() の途中で、
textUserと textPass が textValueChanged()を(何回も)呼び出し
ているようです(なぜそんな事が起きるかはさっぱり分かりません
が…)。

それゆえ、この問題はコンストラクタ内のcolleagueChanged() と
pack() の順番を入れ換えれば一応解決します。ただ個人的には
colleagueChanged() メッソドの中身を変えた方がいい気はします
が…
例えば以下のようにしてみたらどうでしょうか?

public void colleagueChanged(Colleague c){
if(checkGuest.getState()){
textUser.setColleagueEnabled(false);
textPass.setColleagueEnabled(false);
buttonOk.setColleagueEnabled(true);
}else{
textUser.setColleagueEnabled(true);
userpassChanged();
}
}

それでは失礼します。

--
阿部 将典
mabe@…
__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo! http://bb.yahoo.co.jp/

添付:
 読み込み中...

このメールには下記のメールが返信されています:

【PR】お小遣いブログレシピ無料ホームページ予定調整