SetDaysFrameクラスのコンストラクタでは例の如くコンストラクタから見てきます。
と、その前に日付を設定するために新しいフレームを表示することにしてるのでSetDaysFrameは
class SetDaysFrame extends Frame {
のようにjava.awt.Frameクラスのサブクラスとして作成します。
ではホントにコンストラクタ見てきます。最初に
super(title);
で親クラスのコンストラクタを呼び出しフレームのタイトルを設定します。続いて
this.yourBiorhythm = yourBiorhythm; this.biorhythmCanvas = biorhythmCanvas;
と、引数で持ってきたyoutBiorhythm、biorhythmCanvasの設定です。次に
birthdayYearField = new TextField(4);
birthdayMonthField = new TextField(2);
birthdayDateField = new TextField(2);
calcYearField = new TextField(4);
calcMonthField = new TextField(2);
calcDateField = new TextField(2);
OKButton = new Button("OK");
cancelButton = new Button("Cancel");
と誕生日・バイオリズムを計算する日の年月日を設定するテキストフィールドと設定の完了・取り消しを指示するボタンを作成します。
その後の
GridBagLayout gb = new GridBagLayout();
GridBagConstraints gc1 = new GridBagConstraints();
gc1.anchor = GridBagConstraints.WEST;
GridBagConstraints gc2 = new GridBagConstraints();
Panel dayPanel = new Panel();
dayPanel.setLayout(gb);
mb(0, 0, 5, 1, dayPanel, new Label("Birthday : "), gb, gc1);
mb(0, 1, 1, 1, dayPanel, birthdayYearField, gb, gc2);
mb(1, 1, 1, 1, dayPanel, new Label("/"), gb, gc2);
mb(2, 1, 1, 1, dayPanel, birthdayMonthField, gb, gc2);
mb(3, 1, 1, 1, dayPanel, new Label("/"), gb, gc2);
mb(4, 1, 1, 1, dayPanel, birthdayDateField, gb, gc2);
mb(0, 2, 5, 1, dayPanel,new Label("Calculate Day : "), gb, gc1);
mb(0, 3, 1, 1, dayPanel, calcYearField, gb, gc2);
mb(1, 3, 1, 1, dayPanel, new Label("/"), gb, gc2);
mb(2, 3, 1, 1, dayPanel, calcMonthField, gb, gc2);
mb(3, 3, 1, 1, dayPanel, new Label("/"), gb, gc2);
mb(4, 3, 1, 1, dayPanel, calcDateField, gb, gc2);
Panel buttonPanel = new Panel();
buttonPanel.add(OKButton);
buttonPanel.add(cancelButton);
setLayout(new BorderLayout());
add("Center", dayPanel);
add("South", buttonPanel);
ではパネルを2枚作って、そのうち1枚のパネルのレイアウトをGridBagLayoutにして下記のようなレイアウトを作成しています。

GridBagLayoutについてはメソッドmb()のところでほーんの少しだけ説明します。