Containerとレイアウト

awtコンポーネントのレイアウトの機能を持つ Containerクラスについて説明します。
awtコンポーネントは、それを含む Container のオブジェクトの内部に 自動的にレイアウトされます。 Containerクラスは Componentクラスを継承し、レイアウトをコントロール する機能が拡張されています。その主要なメソッドを以下にまとめておきます。

Container クラスで拡張された主要なメソッドとその働き
メソッド名機能
add()引数で指定したコンポーネントを内部に追加する
remove()引数で指定したコンポーネントを削除する
layout()レイアウトを実行する
countComponents()内部にあるコンポーネントの個数を返す
getComponent()指定された番号のコンポーネントを返す
getComponents()内部の全コンポーネントを配列として返す
setLayout()レイアウトのポリシーの設定を行う
getLayout()レイアウトのポリシーの現在の状態を返す

Containerクラスは、それ自身はオブジェクトを生成しません。そのサブクラスである Frame, Panel, Applet は上の機能をそのまま継承しています。

レイアウトのポリシー(方針)は、 Container オブジェクトに 専用のクラス を通じて設定されます。 デフォルトの設定では、 Containerオブジェクトに採用されるレイアウトのポリシーは FlowLayout です。 そのポリシーは、 「左から右に順にコンポーネントを置き、はみ出たら下の行に移る。」 というものです。 (要するに通常の文章の表示と同じレイアウト)
 デフォルト以外のレイアウトを利用するためには、 使用するレイアウトのクラスのデータを生成し、 それを目的の Container オブジェクトに設定します。


      public CardLayout lay;   // レイアウトのオブジェクト

      public void init() {

            lay = new CardLayout();  //レイアウトの生成
            setLayout( lay );        //レイアウトの設定
                  :
            add( button[0] );        //部品を追加