1.1 のプログラムの補足説明

1.1 で例に掲げたプログラム DisplyaMyName.java についての説明です。

参考 1.1 文字列の表示
参考 1.2 のプログラム MyName.java の補足説明

【プログラムの構造】

page-1-1-program.gif

【プログラムの詳細】

●1〜2行目

パッケージのインポート。 Javaにおけるパッケージとは、特定の機能を提供するクラスの集まりのことです。

このプログラムでは、システムに用意されている、

という2つのパッケージに含まれるクラスを簡潔な形で参照できるようにしています。 いずれのパッケージもウィンドウを取り扱うためのクラスを提供しています。

1行目を書くことにより、

をこの形で書けるようになります。 2行目を書くことにより、 をこの形で書けるようになります。

1〜2行目を書かかずに、全く同等のプログラムを書いてみると、 プログラム DisplayMyNameX.java のようになります。

●4行目

クラス定義の始まり。ここで開いた中カッコ { は、17行目で 閉じられます。つまり、4〜17行目で、DisplayMyName という名前の クラスを定義しています。

クラス定義は、以下のような構成になっています。
simple-class-def.gif
< 10.1節 から抜粋 >

オブジェクトがもつデータの性質を記述する「フィールドの定義」と、 そのオブジェクトの生成の仕方を記述する「コンストラクタの定義」、 および、そのデータの取り扱い方を記述する「メソッドの定義」からなっています。
この順序で書くのが普通ですが、どのような順序でもかまいませんし、 必要なものだけを書けばよいのです。
このプログラムでは、「変数の定義」も「コンストラクタの定義」もなく、 「メソッドの定義」がひとつあるだけです。

以下、クラス定義の中身について説明します。といっても、メソッドがひとつだけですが...

●6行目
メイン・メソッドの定義の始め。 ここで開かれた中カッコ { は、 16行目で閉じられます。つまり、6〜16行目までが、 メイン・メソッドの定義です。

メイン・メソッド て何?

メソッドについてはちょっと置いといて、とにかく、 プログラムを実行すると、この

public static void main(String args[]){
...
...
}
の部分が上から順に実行される、と理解してください。
以下、このメソッドの中身について説明します。
●8行目
JFrame クラスのインスタンス(実体、データ)を生成し、frame という名前をつけています。
frame という名前は、ここで初めて現れているため、frame の前に クラス名 JFrame を書き、変数 frame が クラス JFrame であると宣言しています。
「 JFrame クラスのインスタンスを生成し、クラス JFrame の変数 frame に代入する 」という言い方をします。

JFrame とは、何か?

JFrameについての継承関係は次の通りです。
Object → Component → Container → Window → Frame → JFrame
継承関係は、植物や動物の分類にたとえられます。例の、
動物 → 脊椎動物 → 哺乳類(網) → 霊長類(目) → ヒト
を思い出してください。
すこし荒っぽく言えば、JFrame は Frame のなかまであり、さらに Window(いわゆるウィンドウ)の仲間であるということです。
四角な形状で、上辺にタイトル・バーがあり、サイズや表示位置を 変更できる、いわゆるウィンドウです。
●9行目

生成した JFrame frame 対して、ウィンドウを Close する際に Java Virtual Machine を止めるように依頼しています。

9行目を省略した場合の状況は、 「1章のまとめ 【WindowListener の働き】」を参照してください。

●10行目
frame に直接ラベルを貼り付けることはできません。 ラベルを貼るために、frame のコンテントペインを取り出してきて、 pane という名前を付けています。
J2SE 5.0 では JFrame に直接ラベルを貼れるようになりました。
DisplayMyNameT2.java
●12行目
「藤村 光」と書いたラベルを生成し、 (フレーム frame の) pane 部分 に貼り付けています。
ポスト・イットのようなラベルを考えてください。四角い形をしていて、 表面に文字や絵柄を書いて、どこかに貼り付けることができるものが JLabel です。文字列1つ、絵柄1つ、あるいは文字列と絵柄の両方を貼り付けることが出来ます。

えーと、 JLabel の英語の発音は [発音記号] 、日本語ではジェイラベルと言います。

●14行目
インスタンス frame の大きさを調整し、張付けた内容が表示されるようにします。

この行を省略した プログラム DisplayMyNameZ.java をコンパイルして実行してみましょう。
名前が表示されていないのではなく、フレームが小さいままなのが解ります。 マウスでフレームを広げてみましょう。

●15行目
インスタンス frame を画面に表示します。 14行目までで作ってきた frame を見えるようにするのは、この メソッド setVisible の参照です。この行の代わりに、
frame.show();
でも、 frame を表示できます。

Top Page
更新日:2012/04/02

Valid HTML 4.01 Transitional