awtコンポーネントは、それを含む Container のオブジェクトの内部に
自動的にレイアウトされます。
Containerクラスは Componentクラスを継承し、レイアウトをコントロール
する機能が拡張されています。その主要なメソッドを以下にまとめておきます。
| メソッド名 | 機能 |
|---|---|
| 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] ); //部品を追加