目次> 第9章> 9.3 TOPUPPREVNEXT

9.3 プログラムの構造

下図のように2つのプログラム、3つのクラスから構成されています。

page-9-3-1.gif

NumberGameView.java の詳細】

ソースプログラム NumberGameView.java

5〜39行目

クラス NumberGameView の定義。

7行目

生成時に渡された NumberGame を保持するインスタンス変数 の宣言。

8行目

入力用のテキストフィールド inputText の定義。

9行目

メッセージ表示用ラベル message の定義。

10〜12行目

表示する文字列。

14〜31行目

NumberGameView のコンストラクタ。

15〜18行目

JFrame の生成と初期化、ウィンドウリスナの付加。

19行目

main から渡された game をインスタンス変数に保存。

20行目

JFrame の コンテントペイン に container という名前をつける。

21行目

container のレイアウト設定。

22行目

ウィンドウの1行目に、「数あてゲームの出題者」と表示。

23〜28行目

入力用テキストフィールド inputText にアクションリスナを付加。

24〜27行目

このテキストフィールドに「Enter」が入力されたら、
  • inputText の getText を実行( 入力された文字列を取得 )
  • Integer クラスのクラスメソッド parseInt を実行( 文字列を数字に変換)
  • 33行目以降に定義されている setMessage を実行 するように登録をする。

29行目

ウィンドウの2行目に inputText を貼り付ける。

30行目

ウィンドウの3行目に massege を貼り付ける。

33〜38行目

メソッド setMessage の定義。
渡された input の値を game クラスの judge メソッドに渡し、 −1、0、+1 を受け取り ローカル変数に代入する。
この値にしたがって、「正解です」「小さすぎます」「大きすぎます」 のいずれかを ラベル massege に貼り付ける。

NumberGameExaminer.java の詳細】

ソースプログラム NumberGameExaminer.java

5〜19行目

クラス NumberGame の定義

7行目

インスタンス変数 answer ... 解答を保持

9〜12行目

クラス NumberGame の コンストラクタ

10行目

乱数のシードを初期化。

11行目

0〜9999の整数の乱数を1つ生成。

14〜18行目

メソッド judge 。 input と anwer を比較。

21〜29行目

クラス NumberGameExaminer の定義

23〜28行目

main 処理。

24行目

NumberGame のインスタンスを生成し、game という名前をつける。

25行目

NumberGameView のインスタンスを生成し、frame という名前をつける。
生成した game を渡し、NumberGameView のインスタンス変数に保持する。

更新日:2004/04/18 TOPUPPREVNEXT