Java UI の概説 |
このページのアプレットで、用意されているグラフィカル UI のコンポーネントを紹介する 。 グラフィカル UI のコンポーネントはすべて AWT のComponent クラスのサブクラスで実装されている。あなたが使用しているブラウザは <APPLET> タグを理解しない。Java 互 換のブラウザを使用した場合に現れるウィンドウの様子を示す。
実装上の注意: このアプレットは、コンポーネントを表示するウィンドウを起動するボタンとして実装されてい る。 ウィンドウが必要となるのは、このプログラムがメニューが組み込まれて、メニューはウィン ドウの中でしか使用できないからである。 中身を知りたい読者のために、コンポーネントを表示するこのウィンドウのソースコード を示す。 (各コンポーネントの使用例と解説は、GUI の構成ブロックである Component を使用 するレッスンに記載する。) このプログラムは Applet サブクラスと main()
メソッドを両方とも もっている。このため、このプログラムはアプレットとして実行することもアプリケ ーションとして実行することも可能である。 このプログラムは AppletButton クラス を使用して、 ウィンドウに対するアプレットのフ枠組みを実現している。
基本的な制御部品として、Button、Checkbox、Choice、List、MenuItem、TextField 。 これらの部品を使うのはユーザが Java プログラムに動作を指示するときの最も一般的な方法である 。 ボタンをクリックしたり、テキストフィールドで改行キーを押すなどして、ユーザが これらの部品に対してアクションを起こすと、1 つのイベント (ACTION_EVENT) がポストさ れる。 制御部品をもったオブジェクトは、action()
メソッドを実装することによ ってイベントに反応することができる。
基本的な制御部品では対応しにくい場合、Scrollbar とTextArea クラスを使用してユーザ入力を取 り込むことができる。 Scrollbar クラスはスライダとスクロールバーの両方の機能で使用される。 スライダの例は、 GUI ベースのプログラムの構造に記載されている。リス トおよびテキストエリアでのスクロールバーはこのページのアプレットに示されてい る。TextArea クラスは何行かのテキストを表示または編集するための領域を提供するだ けである。 このページのアプレットからもわかるように、テキストエリアには自動的にスクロー ルバーが付加される。
Canvas クラスでは、特別にあつらえた コンポーネント を書くことができる。 Canvas サブクラスを使用すると、ペイントプログラム、イメージプロセッサ、ゲー ムなど、特製のグラフィックスをスクリーンに描画できるほか、どのような種類のイ ベント処理でも行えるようになる。
Labels は、(ユーザからは) 編集不能で選 択不能な 1 行のテキストを表示するだけである。
AWT には 2 つの形式のコンテナが備わっており、どちらもそのクラス (コンポーネント サブクラス) のサブクラスとして実装されている。 Window サブクラスには Dialog、FileDialog、Frame があり、 コンポーネントを納めるウィンドウを整える。 Panel は既存のウィンドウの 1 つの領域内のコンポーネントをまとめるものである。プログラム例は Panel を使ってラベルとテキストエリアをまとめ、別の Panel を使 ってそれらをキャンバスとまとめ、さらに別の Panel を使ってテキストフィールド 、ボタン、チェックボックス、選択肢のポップアップリストをまとめている。このよ うな Panel はすべて Applet オブジェクトによってまとめられる。これは、Applet クラスが Panel のサブクラスだからである。
このプログラム例は Frame を使用して Menu と List を保持している。(Dialog が作成 するウィンドウが Frame に依存し、モーダルなウィンドウになり得るのとは対照的に、Frame が作成するのは通常の、完全なウィンドウである。)このプログラムがアプリケーシ ョンとして実行される場合は、
main()
メソッドが Frame を作成し、 Applet を保持する。 最後に Menu で "File dialog..." 項目を選択すると、このプログラムは FileDialog オブジェクトを作成する。このオブジェクトは Open か Save ダイアロ グのどちらかになる Dialog である。ブラウザに関する注意: Netscape Navigator 2.0 はローカルファイルシステム上でのファイルの読み書きを 許可しないため、FileDialog クラスを実装していない。
次に、Solaris の Applet ビューワーが起動する FileDialog ウィンドウの画像を示 す。
Java UI の概説 |