章の例では,
setBounds
メソッドを用いてGUIコンポー
ネントの位置や大きさを指定した.
しかし,Javaのプログラムは,様々な環境,例えば,携帯電話やPDAなどWindowsとは画面
の解像度や大きさが全く異なるような環境でも同一のプログラムを実行することが可能で
あり,このような場合には,setBounds
メソッドを用いてコンポーネント上の座標
で位置や大きさを指定すると,Windows上では表示されていたボタンが携帯電話の上では
表示されなくなってしまうとか,文字の大きさとアンバランスになるなどの問題が発生す
る.
AWTでは,画面の解像度や大きさに依存せずにGUIコンポーネントを配置するための方法と してレイアウトマネージャが用意されている. レイアウトマネージャは,「あるコンポーネントの隣」や「上のほう」といった抽象的な 位置関係を指定するだけで,コンテナ内部のGUIコンポーネントを自動的に配置する.
表 にレイアウトマネージャの一覧を示す.
本章の以降では代表的なレイアウトマネージャである
FlowLayout
,
BorderLayout
,GridLayout
について解説する.
この他のレイアウトマネージャについては,インターネット上の情報や書籍などを参考に
してほしい.
レイアウトマネージャ | 説明 |
FlowLayout |
コンポーネントを追加された順に左から右に配置する. コンポーネントを右に配置する余裕がない場合は,下に折り返されて配置される. |
BorderLayout |
コンポーネントを中央と上下左右の最大5カ所に配置する. |
GridLayout |
コンポーネントを追加された順に左から右,上から下に格子上に並べる. すべてのコンポーネントの大きさは同一となる. |
GridBagLayout |
コンポーネントを格子上に並べる. コンポーネントの座標や大きさを格子単位で指定することができる. |
CardLayout |
各コンポーネントをコンテナを同一の大きさにし,重ねて配置する. 同時に表示されるのは指定されたコンポーネントのみであり,これを切り替えること ができる. |