SWING-レイアウト
レイアウトとは、コンテナ内のコンポーネントの配置を指します。別の言い方をすれば、レイアウトはコンポーネントをコンテナ内の特定の位置に配置していると言えます。コントロールのレイアウトタスクは、レイアウトマネージャーによって自動的に実行されます。
レイアウトマネージャー
レイアウトマネージャーは、コンテナー内のすべてのコンポーネントを自動的に配置します。レイアウトマネージャーを使用しない場合でも、コンポーネントはデフォルトのレイアウトマネージャーによって配置されます。手作業でコントロールを配置することは可能ですが、以下の2つの理由により非常に困難になります。
コンテナ内で多数のコントロールを処理するのは非常に面倒です。
通常、コンポーネントを配置する必要がある場合、コンポーネントの幅と高さの情報は提供されません。
Javaには、コントロールを配置するためのさまざまなレイアウトマネージャーが用意されています。サイズ、形状、配置などのプロパティは、レイアウトマネージャーごとに異なります。アプレットまたはアプリケーションウィンドウのサイズが変更されると、コンポーネントのサイズ、形状、および配置もそれに応じて変更されます。つまり、レイアウトマネージャはアプレットビューアまたはアプリケーションウィンドウの寸法に適応します。
レイアウトマネージャーは、すべてのContainerオブジェクトに関連付けられています。各レイアウトマネージャーは、LayoutManagerインターフェイスを実装するクラスのオブジェクトです。
以下は、レイアウトマネージャーの機能を定義するインターフェースです。
シニア番号 | インターフェースと説明 |
---|---|
1 | LayoutManager LayoutManagerインターフェイスは、オブジェクトがレイアウトマネージャーとして機能するクラスによって実装される必要があるメソッドを宣言します。 |
2 | LayoutManager2 LayoutManager2は、LayoutManagerのサブインターフェイスです。このインターフェースは、レイアウト制約オブジェクトに基づいてコンテナーをレイアウトする方法を知っているクラス向けです。 |
AWTレイアウトマネージャークラス
以下は、AWTを使用してGUIを設計する際に一般的に使用されるコントロールのリストです。
シニア番号 | レイアウトマネージャーと説明 |
---|---|
1 | BorderLayout borderlayoutは、東、西、北、南、および中央の5つの領域に収まるようにコンポーネントを配置します。 |
2 | CardLayout CardLayoutオブジェクトは、コンテナ内の各コンポーネントをカードとして扱います。一度に表示できるカードは1枚だけです。 |
3 | FlowLayout FlowLayoutがデフォルトのレイアウトです。コンポーネントを方向性のあるフローでレイアウトします。 |
4 | グリッドレイアウト GridLayoutは、長方形グリッドの形式でコンポーネントを管理します。 |
5 | GridBagLayout これは最も柔軟なレイアウトマネージャークラスです。GridBagLayoutのオブジェクトは、同じサイズのコンポーネントを必要とせずに、コンポーネントを垂直、水平、またはベースラインに沿って配置します。 |
6 | GroupLayout GroupLayoutは、コンポーネントをコンテナに配置するために、コンポーネントを階層的にグループ化します。 |
7 | SpringLayout SpringLayoutは、一連の制約に従って、関連付けられたコンテナの子を配置します。 |