GUI の構成ブロックであるコンポーネントを使用する |
Frame クラスは、アプレットとアプリケーショ ンのためのウィンドウを提供する。 すべてのアプリケーションは少なくとも 1 つのフレームを必要とする。 アプリケーションが他のウィンドウに依存すべきウィンドウをもつ場合、たとえば他のウィンドウがアイコン化されればそれに依存して見えなくなるようなウィンドウを もつ場合は、そのウィンドウに対しては Frame ではなく Dialog を使用すべきである。残念ながら、アプレットは現在のところダイアログをうまく使用することができないため、普通はダイアログの代わりにフレームを使用する必要がある。メニューの使用方法 ページとダイアログの使用法 ページは、このチュートリアルで Frame を使用している多数のページのうちの 2 つである。
以下に、ウィンドウ (Frame サブクラス) の作成と、ユーザがウィンドウを閉じた場合の処理のために、メニューのデモンストレーションが使用しているコードを示す 。
public class MenuWindow extends Frame { boolean inAnApplet = true; TextArea output; public MenuWindow() { ...//この構築子は暗黙的に Frame の引数なしの構築子を //呼び出した後、コンポーネントをウィンドウに追加する。 } public boolean handleEvent(Event event) { if (event.id == Event.WINDOW_DESTROY) { if (inAnApplet) { dispose(); } else { System.exit(0); } } return super.handleEvent(event); } . . . public static void main(String args[]) { MenuWindow window = new MenuWindow(); window.inAnApplet = false; window.setTitle("MenuWindow Application"); window.pack(); window.show(); } }上記の
main()
メソッドで呼び出されるpack()
メソッ ドは Window クラスによって定義される。pack()
については ダイアログの使用方法を参照する。上記のような、MenuWindow 構築子が暗黙的に使用する引数なしの Frame 構築子のほ かに、Frame クラスは引数 1 個の構築子も提供する。 この引数は、フレームのウィンドウのタイトルを指定する String である。
Frame が提供する便利なメソッドにはほかに以下のものがある。
String getTitle()
とvoid setTitle(String)
- (それぞれ) フレームのウィンドウのタイトルを返す、または設定する。
Image getIconImage()
とvoid setIconImage(Image)
- (それぞれ) ウィンドウがアイコン化されるときの表示イメージを返す、または設定する。
MenuBar getMenuBar()
とvoid setMenuBar(MenuBar)
- (それぞれ) この Frame のメニューバーを返す、または設定する。
void remove(MenuComponent)
- 指定されたメニューバーをこの Frame から削除する。
boolean isResizable()
とvoid setResizable(boolean)
- ユーザがウィンドウサイズを変更できるかどうかを返す、または設定する。
int getCursorType()
とvoid setCursor(int)
- 現在のカーソルイメージを調べる、または設定する。 カーソルは、Frame クラスで定義された型の 1 つとして指定されなければならない。 前もって定められた型は Frame.DEFAULT_CURSOR、 Frame.CROSSHAIR_CURSOR、 Frame.HAND_CURSOR、 Frame.MOVE_CURSOR、 Frame.TEXT_CURSOR、 Frame.WAIT_CURSOR、または Frame.X_RESIZE_CURSOR である。ここでのX は SW、SE、NW、NE、N、S、W、または E である。
GUI の構成ブロックであるコンポーネントを使用する |