レイアウト・マネージャーとコンテナー

レイアウト・マネージャーは、コンテナー内のコンポーネントのサイズおよび位置を制御するオブジェクトです。

いくつかの Java™ Bean では、Java Bean 同士の間で関係を持つことができます。 例えば、java.awt.Container クラスにより、java.awt.Component のインスタンスをそのコンポーネント関係のパーツとして追加できます。 java.awt.Container の例としてパネルまたはフレームがあります。 java.awt.Component の例としてボタンまたはテキスト・ボックスがあります。 SWT クラス org.eclipse.swt.widgets.Composite によって、org.eclipse.swt.widgets.Control のインスタンスが、制御関係のパーツとして追加されることが可能になります。 Visual Editor for Java では、この包含関係は「Java Bean」ビュー、および「設計」ビューに表示されます。つまり、コンテナーは、コンポーネントあるいはほかのコンテナーを含むことができます。

レイアウト・マネージャーは、コンテナーにあるコンポーネントのサイズと位置を制御するオブジェクトです。 コンテナーのレイアウト・マネージャーはヌルに設定することができます。これにより、それぞれのコンポーネント自体がサイズ変更、および位置決めを行えます。ただし、ヌル・レイアウトでは、GUI コンポーネントの位置はサイズ変更されたウィンドウに反応しません。 レイアウト・マネージャーを使用する場合は、それぞれのコンポーネントが固定サイズと位置を持つのではなく、 各コンテナーのレイアウト・マネージャーがコンポーネントのサイズ変更、および位置決めを委譲します。

コンテナーのレイアウト・プロパティーは「プロパティー」ビュー内で設定できます。

「プロパティー」ビューのスクリーン・ショット

それぞれのレイアウト・マネージャーは、コンポーネントを分散する独自の規則を持っていますが、ほとんどのレイアウト・マネージャーは、コンポーネントの推奨サイズと同等以上の大きさで、それぞれのコンポーネントを配置します。 ボタンやラベルなど、ユーザーが可視のストリングを持つコンポーネントの推奨サイズは、動的に計算されます。 そのため、ロケールやフォントが異なるためにストリングの長さが変更されると、レイアウト・マネージャーがそれぞれのコンポーネントを再配置します。ランタイムにユーザーがウィンドウをサイズ変更すると、レイアウト・マネージャーもそれぞれのコンポーネントを再配置し、新しい全体のサイズを最適化します。これにより、ラベル・ストリング、フォント、またはウィンドウ・サイズを変更できる環境にデプロイされるユーザー・インターフェースの構築には、レイアウト・マネージャーがきわめて重要になります (例えば、グローバリゼーションのため、など)。

Swing および Abstract Window Toolkit (AWT) コンテナーは、レイアウト・マネージャーの同じセット (ほとんどが AWT オブジェクトです) を使用します。Standard Widget Toolkit (SWT) コンポジットは、独自の SWT レイアウト・マネージャーを使用します。

注: Visual Editor では提供されていないレイアウト・マネージャーを使用している場合であっても、「設計」ビューはコンテナーを正しく構成して、コンポーネントをレンダリングします。 しかし、「プロパティー」ビュー、または「設計」ビューを使用して制約を更新することはできません。

フィードバック