●1〜2行目
パッケージのインポート。
Javaにおけるパッケージとは、特定の機能を提供するクラスの集まりのことです。
このプログラムでは、システムに用意されている、
- AWT(アブストラクト ウィンドウ ツールキット)の全部のクラス
- Swingのクラス全部
という2つのパッケージに含まれるクラスを簡潔な形で参照できるようにしています。
いずれのパッケージもウィンドウを取り扱うためのクラスを提供しています。
1行目を書くことにより、
をこの形で書けるようになります。
2行目を書くことにより、
- 8行目と9行目の JFrame ( 2ヶ所 )
- 12行目の JLabel
をこの形で書けるようになります。
1〜2行目を書かかずに、全く同等のプログラムを書いてみると、
プログラム DisplayMyNameX.java のようになります。
●4行目
クラス定義の始まり。ここで開いた中カッコ { は、17行目で
閉じられます。つまり、4〜17行目で、DisplayMyName という名前の
クラスを定義しています。
クラス定義は、以下のような構成になっています。
<
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 という名前を付けています。
●12行目
「藤村 光」と書いたラベルを生成し、
(フレーム frame の) pane 部分 に貼り付けています。
ポスト・イットのようなラベルを考えてください。四角い形をしていて、
表面に文字や絵柄を書いて、どこかに貼り付けることができるものが JLabel
です。文字列1つ、絵柄1つ、あるいは文字列と絵柄の両方を貼り付けることが出来ます。
えーと、 JLabel の英語の発音は [] 、日本語ではジェイラベルと言います。
●14行目
インスタンス frame の大きさを調整し、張付けた内容が表示されるようにします。
この行を省略した プログラム DisplayMyNameZ.java
をコンパイルして実行してみましょう。
名前が表示されていないのではなく、フレームが小さいままなのが解ります。
マウスでフレームを広げてみましょう。
●15行目
インスタンス frame を画面に表示します。
14行目までで作ってきた frame を見えるようにするのは、この メソッド setVisible
の参照です。この行の代わりに、
frame.show();
でも、 frame を表示できます。