next up previous
: アプレットにもなるGUIアプリケーション : Webブラウザを用いないGUIプログラム : Frameクラス

Frameを用いたプログラム例

以下にFrameクラスを用いたプログラム例を示す. このプログラムそのものは HelloFrameというクラスであり,コンストラクタは28〜 35行目である. その他はアプリケーションとして実行するためのmain()メソッド(17〜26行目), 文字を描くためのCanvasクラスのサブクラス(5〜9行目),ボタンのイベントを 処理するためのActionListenerを実装したクラス(11〜15行目)である.

その他については概ねアプレットと同じなのでmain()メソッドについて少し詳し く解説しておこう.

18行目
Frameクラスのサブクラス,すなわちウィンドウに対応するクラス であるHelloFrameクラスのインスタンスを生成している.
19〜23行目
ここで生成されたウィンドウは,ネイティブのウィンドウマネージャ に管理されるため,普通のアプリケーションと同様にウィンドウには「閉じる」,「最大 化」,「最小化」などに対応したボタンが付く. しかし,素のFrameクラスは,これらのイベントを処理しないので,この行では 「閉じる」を押された場合のイベント処理を登録している. これは決まった書き方なので覚えておくと良い.
24行目
ここでウィンドウのサイズを指定している. このウィンドウはサイズが決まらないコンポーネント(Canvasクラス)を含むの で明示的にウィンドウサイズを指定している. 例えばここをframe.pack()に変更するとどうなるか試してみると良いだろう.
25行目
ここで初めてウィンドウを表示している.




\begin{boxedminipage}{15cm}
\renewedcommand{baselinestretch}{0.8}\begin{verbatim...
...34: add(button, ''South'');
35: }
36:
37: }\end{verbatim}\end{boxedminipage}



このプログラムは普通のアプリケーションとして実行可能なので,コンパイル,実行する には以下のように入力すれば良い.




\begin{boxedminipage}{15cm}
\begin{verbatim}% javac HelloFrame.java
% java HelloFrame\end{verbatim}\end{boxedminipage}



U-GM\murao 平成14年7月5日