- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!! パネル
コンポーネントの一つにパネルというクラスがあります。これはいままでのコンポーネントとは少し異なります。パネルはコンテナクラス Container を継承したクラスです。コンテナは先ほども少し顔を出しましたが、自身にコンポーネントを含めることができます。
パネルはいくつかのコンポーネントをまとめて一つのコンポーネントとして配置したいときに使います。具体例を見てみましょう。
''Sample30.java''
{{pre num
/* <applet code="Sample30.class" width="150" height="200"></applet> */
import java.applet.Applet;
import java.awt.*;
public class Sample30 extends Applet{
// コンポーネントクラスの変数を定義
SampleCanvas sampleCanvas;
public void init(){
// パネルオブジェクトの作成
Panel panel = new Panel();
// パネルのレイアウトを指定
panel.setLayout( new GridLayout( 2, 3));
// パネルにコンポーネントを配置
panel.add( new Button("Start"));
panel.add( new Button("Stop"));
panel.add( new Button("Clear"));
panel.add( new Label("(X,Y)", Label.CENTER));
panel.add( new TextField( "10"));
panel.add( new TextField( "5"));
// キャンバスオブジェクトの作成と初期化
sampleCanvas = new SampleCanvas();
// アプレット自身のレイアウトの設定
this.setLayout( new BorderLayout());
// コンポーネントをアプレットのコンテナに追加
this.add( panel, BorderLayout.NORTH);
this.add( sampleCanvas, BorderLayout.CENTER);
}
}
}}
Sample30の実行結果は図34のようになります。
{{ref_image fig034.png}}
プログラムでは11行目から20行目でパネルオブジェクトを作成し、それにコンポーネントを追加しています。パネルにはそれ自身のレイアウトを指定することができ、13行目でそれをおこなっています。ここではGridLayoutを指定しました。また23行目でSampleCanvasのオブジェクトを作成しています。
26行目ではアプレット自身のレイアウトを指定しています。ここではBorderLayoutを指定しました。
29行目と30行目で、パネルとキャンバスをそれぞれアプレット上部とアプレット中央部に位置を指定して追加しています。
このように、パネルはアプレットをコントロールするためのボタンやテキストフィールドなどをまとめて配置するときに使います。そして描画にはキャンバスを用いるのが一般的でしょう。コントロール用のコンポーネントを詰め込んだパネルを、アプレット上部に配置するかアプレット下部に配置するかは好みによると思います。:)