GUI の構成ブロックであるコンポーネントを使用する |
Panel クラスは汎用の Container サブクラスで ある。 そのまま使用して Component を保持させることもできるし、サブクラスを定義して Panel がもっているオブジェクトのイベントを処理するような特別な機能を実行させることもできる。Applet クラスは、ブラウザや他の Applet ビューワーで実行するための特別なフックをもった Panel サブクラスである。 アプレットとしてもアプリケーションとしても実行できるプログラムは、Applet サブクラスを定義するが、Applet の特別な能力は使用せず、かわりに Panel クラスから継承するメソッドの能力を活用する場合が多い。
いくつかの Component を保持する Panel インスタンスの使用例を示す。
次に、コンテンツの周りにフレームを描く Panel サブクラスの例を示す。このクラスのバージョンは、形状を描画するの例 1 と 2 で使用されている。Panel p1 = new Panel(); p1.add(new Button("Button 1")); p1.add(new Button("Button 2")); p1.add(new Button("Button 3"));class FramedArea extends Panel { public FramedArea(CoordinatesDemo controller) { ...//レイアウトマネージャを設定する。 //この Panel がもつ Component を追加する... } //フレームのトップに Component がないことを確認する。 //このインセット値は試行錯誤(原文:trail (trialか?) and error)によって決定される。 public Insets insets() { return new Insets(4,4,5,5); } //この Panel の端でフレームを描く。 public void paint(Graphics g) { Dimension d = size(); Color bg = getBackground(); g.setColor(bg); g.draw3DRect(0, 0, d.width - 1, d.height - 1, true); g.draw3DRect(3, 3, d.width - 7, d.height - 7, false); } }このレッスンの例の多くは、Applet サブクラスを使用して、Applet サブクラスがもつ Component のイベントを処理している。その一例は、ダイアログの使用方法に記載されている。 ここの例や他の例に示されたイベント処理を、読者独自の Applet または Panel サブクラスのイベント処理のモデルとして活用することができる。
GUI の構成ブロックであるコンポーネントを使用する |