阿部です。
結城さん、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/