Previous | Next | Trail Map | Creating a User Interface | GUI の構成ブロックであるコンポーネントを使用する


パネルの使用方法

Panel(in 
the API reference documentation) クラスは汎用の Container サブクラスで ある。 そのまま使用して Component を保持させることもできるし、サブクラスを定義して Panel がもっているオブジェクトのイベントを処理するような特別な機能を実行させることもできる。

Applet(in 
the API reference documentation) クラスは、ブラウザや他の Applet ビューワーで実行するための特別なフックをもった Panel サブクラスである。 アプレットとしてもアプリケーションとしても実行できるプログラムは、Applet サブクラスを定義するが、Applet の特別な能力は使用せず、かわりに Panel クラスから継承するメソッドの能力を活用する場合が多い。

いくつかの Component を保持する Panel インスタンスの使用例を示す。

Panel p1 = new Panel();
p1.add(new Button("Button 1"));
p1.add(new Button("Button 2"));
p1.add(new Button("Button 3"));

次に、コンテンツの周りにフレームを描く Panel サブクラスの例を示す。このクラスのバージョンは、形状を描画する(in the Creating a User Interface 
trail)の例 1 と 2 で使用されている。

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 のイベントを処理している。その一例は、ダイアログの使用方法(in the 
Creating a User Interface trail)に記載されている。 ここの例や他の例に示されたイベント処理を、読者独自の Applet または Panel サブクラスのイベント処理のモデルとして活用することができる。


Previous | Next | Trail Map | Creating a User Interface | GUI の構成ブロックであるコンポーネントを使用する