////////////////////////////////////////////////////////////////////////////////
//  << s101.java >>
//
//  Swing(0):概説
//
// ●GUI(Graphical User Interface)
//
//    画面に表示されているボタンやメニューなどをクリックしてある処理を実行させ
//  たり、スロールバーを動かして表示を変更するなど、マウス操作などで処理を
//  進める方式をいう。ユーザにわかりやすい。
//    ユーザのマウス操作をきっかけとしてイベントを発生させ、イベントに対応する
//  処理を行う。
//  ボタンやメニューは、GUI部品(コンポーネントともいう)と呼ばれる。
//
// ●Swing
//
//  GUI用部品はAWT(Abstract Window Toolkit)で実現されていたが、各部品の改良や
//  新しい部品の追加が行われ、Swingが実現された。
//  すなわち、SwingもGUI用部品の集まりである。
//    改良された部品には、JButtonのように、AWTでの部品名の前にJが付けられている。
//
// ●AWT(Abstract Window Toolkit)
//
//    GUI作成用のクラスが定義されているパッケージである。
//  AWTのクラスは、部品(ボタン、メニューなど)と、それらをまとめるために
//  存在するコンテナ(ウインドウやパネルやアプレット)に大きく分けられる。
//  ボタンなどの部品を作成し、これらをウインドウなどのコンテナに追加すること
//  でウインドウ画面を作成することになる。
//  また、これらの部品を配置するために5種類のレイアウトマネージャが用意されて
//  いる。
//  レイアウトマネージャは、プラットフォームごとの違い(解像度やフォント)で
//  表示が違わないように部品の配置を支援する仕組みをいう。
//
// ●AWTとSwingの主な違い
//  AWTでは、部品をコンテナにaddメソッドを使って配置する。
//  Swingでは、コンテナからコンテンツペインを取り出し、部品をコンテンツペイン
//  に配置する。
//
// ●Swingを使ったプログラムの書き方
//
//  (0)javax.swingパッケージ、java.awtパッケージ、java.awt.eventパッケージを
//     インポートする。
//      import java.awt.*;
//      import java.awt.event.*;
//          import javax.swing.*;
//   (1)トップレベルコンテナ部品の準備
//     JFrame f = new JFrame("トップレベルコンテナ");
//   (2)中間レベルコンテナ部品の準備(使わなければ準備しなくてよい)
//     JPanel p = new JPanel();
//   (3)Swing部品の準備
//     JButton b = new JButton("ボタン");
//   (4)中間コンテナ部品にSwing部品を配置(使わなければ準備しなくてよい)
//      p.add(jb);
//   (5)JFrameオブジェクトfからコンテンツペインcの取得
//     Container c = f.getContantPane();
//   (6)コンテンツペインcに中間コンテナを配置
//     c.add(p);
//    ・中間コンテナを使わない場合、Swing部品をコンテンツペインに配置しても
//     よい。
//
////////////////////////////////////////////////////////////////////////////////