プログラミング応用b 第11回 『GUIその1 (AWT/Swingによるウィンドウのデザインと生成)』

 【AWTの基本ウィンドウ】

 では,GUIプログラミングの学習を本格的に始めることにしましょう。最も基本的なGUI
プログラムとして,ウィンドウを表示するプログラムを見てみましょう。まず,AWTを使
った場合を,List 1に示します。

List 1 AWTWindows.java


 最初に,List 1-①でjava.awtパッケージをインポートしています。mainメソッドの中
のList 1-②では,Frame型のオブジェクトfを生成しています。このFrameが,標準的な
ウィンドウを表すクラスなのです。コンストラクタの呼び出しは

  Frame( "Hello AWT Frame" );

となっていますが,この文字列は,ウィンドウのタイトルに使われます。

 List 1-③では

  f.setSize( 200, 100 );

としています。setSize( )メソッドは,ウィンドウのサイズ(横幅と縦幅)をpixel単位で設定
するメソッドです。ここでは,ウィンドウのサイズを横200pixel,縦100pixelとしています。

 List 1-④は

  f.setVisible( true );

となっています。setVisible( )メソッドは,ウィンドウの可視・不可視を設定します。ウィ
ンドウは生成された段階では見えない状態になっているの
で,setVisible( )メソッドにtrue
を渡すことで,ウィンドウfを見える状態にしているのです。

 List 1を実行すると,Fig.1のように,横200pixel,縦100pixelの標準的なウィンドウが
表示されるはずです。


●Frame型ウィンドウ

 Fig.1に示すように,このFrame型ウィンドウは標準的に使われるウィンドウで,タイト
ルバー
が一番上についています。タイトルバーには,タイトルの文字列"Hello AWT Frame"
の他に,ウィンドウを閉じるクローズボックス(MacOS Xでは一番左の丸,Windows XPで
は一番右の×印のある四角)などがついています。また,Windows XPでの実行例のように,
ウィンドウの周りにボーダ(縁)がついている場合もあります。このFrame型ウィンドウの場
合,setSize( )メソッドで設定したサイズは,タイトルバーやボーダを含んだサイズである

とに注意しておいてください。

 ところで,List 1を実行して表示されたFrame型ウィンドウのクローズボックスをクリッ
クしてもプログラムは終了しません。終了させるには,このプログラムを動かすためにjava
コマンドを実行したコンソールで,Control+c(コントロールを押しながらCのキー)を押して
下さい。

●Window型ウィンドウ

 それでは,次にList 1-⑤のコメントアウトされている部分を有効にしてみましょう。
List 1-⑤の部分では,
  Window w = new Window( f );
  w.setSize( 50, 50 );
  w.setVisible( true );
となっていて,List 1-②〜④とほとんど同じ形をしています。違いはFrameではなく,
Windows型のウィンドウを生成しようとしているところです。List 1-⑤を有効にして
List 1を実行すると,Fig.2のような,タイトルバーもボーダも無いウィンドウが表示され
ることがわかります。これが,Window型ウィンドウなのです。

 Window型ウィンドウがタイトルバーもボーダも持たないのは,自由にウィンドウの中
身をカスタマイズして使用できるようにするため
です。また,Window型ウィンドウは,
サブウィンドウとして他のFrame型ウィンドウまたはWindow型ウィンドウに所有される
ようになっています。つまり,所有主(オーナー)をたどっていくと,結局は1個のFrame
型ウィンドウにたどり着くことになります。

 List 1-⑤のWindowのコンストラクタの呼び出し部分は

  Window( f )

となっていますね。これは,このWindow型ウィンドウwのオーナーとしてFrame型ウィン
ドウfを指定しているのです。

●Dialog型ウィンドウ
 
今度はさらに,List 1-⑥の部分を有効にしてみましょう。List 1-⑥の部分は

  Dialog d = new Dialog( f, "Hello AWT Dialog" );
  d.setSize( 100, 75 );
  d.setVisible( true );

となっています。List 1-②〜④との違いは,Dialog型ウィンドウを生成しているところです。

 このDialog型ウィンドウは,いわゆるダイアログウィンドウのために用意されたウィン
ドウ
なのです。ダイアログウィンドウは,ソフトウェアのユーザと特定の目的で限定的な
会話(dialog)を行うためのウィンドウです。よく使われるのは,ファイルを保存するとき
に表示されるファイル保存ダイアログなどがあります。

  List 1-⑥を有効にしてList 1を実行すると,Fig.3のようにダイアログウィンドウが表示
されるのがわかります。Frame型ウィンドウとほぼ同じですが,タイトルバーについてくる
ボタンの数や状態などが異なることがわかります。

 Dialog型ウィンドウも,他のウィンドウのサブウィンドウとして利用されるので,オーナーを
指定する必要があります。List 1-⑥のDialogのコンストラクタ呼び出しで,最初に f を
渡 しているのは,fをオーナーに指定しているのです。


次は,Swingの基本ウィンドウについて紹介します。

次に進む。