ControlPanelクラスのコンストラクタコンストラクタです。
まずはインスタンス変数を
this.setDaysFrame = setDaysFrame; this.biorhythmCanvas = biorhythmCanvas; this.yourBiorhythm = yourBiorhythm; calculator = new CalcDate();
と初期化して、次に
setBackground(Color.gray);
と背景色をデフォルト値にセットします。
「ユーザがButtonを押したときの処理をあるクラスでして、そのときに別のクラスになってるCanvasをどうrepaint()したらいいんだろう?」と以前に私は悩んでしまったことがあります。
JDKに付いてきたデモ・アプレットのソースを眺めていたら、Buttonを処理するクラスのコンストラクタの引数にCanvasを入れるようにして、Buttonクラスでは それのrepaint()を呼ぶようにしていたので、以来そのようにしてます。
ここでbiorhythmCanvasがコンストラクタの引数として渡されてくるのもそのためです。
インスタンス変数の定義に続いて
nextButton = new Button("Next");
prevButton = new Button("Prev");
setButton = new Button("Set Days");
add(prevButton);
add(nextButton);
add(setButton);
とユーザからの入力を受け付けるボタンを貼り付けておしまい。
ボタンを貼り付けるときは
add(new Button("Prev"));
add(new Button("Next"));
add(new Button("Set Days"));
のようにしても良いです。ここでは、ちょっとした理由でボタンに変数名を付けておきたかったので、前述のようにしてます。その理由についてはactionメソッドで説明します。