プログラミング応用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の基本ウィンドウについて紹介します。
次に進む。