レイアウト・マネージャーは、コンテナー内のコンポーネントのサイズおよび位置を制御するオブジェクトです。
いくつかの Java Bean は、Java Bean 自体間の関係を持つことができます。 例えば、java.awt.Container クラスにより、java.awt.Component のインスタンスをそのコンポーネント関係のパーツとして追加できます。 java.awt.Container の例としてパネルまたはフレームがあります。 java.awt.Component の例としてボタンまたはテキスト・ボックスがあります。 Visual Editor for Java では、この包含関係は「Java Bean」ビュー、および「設計」ビューに表示されます。
レイアウト・マネージャーは、コンテナーにあるコンポーネントのサイズと位置を制御するオブジェクトです。 コンテナーのレイアウト・マネージャーはヌルに設定することができます。これにより、それぞれのコンポーネント自体がサイズ変更、および位置決めを行えます。 ただし、ユーザーがそのウィンドウのサイズ変更を行っても、GUI コンポーネントの位置はその変更に対応しません。 それぞれのコンポーネントが固定サイズと位置を持つのではなく、 レイアウト・マネージャーを使用して、コンポーネントのサイズ変更、 および位置決めすることを、コンテナーに委任されています。
それぞれのレイアウト・マネージャーは、コンポーネントを分散する独自の規則を持っていますが、ほとんどのレイアウト・マネージャーは、コンポーネントの推奨サイズと同等以上の大きさで、それぞれのコンポーネントを配置します。 ボタンやラベルなど、ユーザーが可視のストリングを持つコンポーネントの推奨サイズは、動的に計算されます。 そのため、ロケールやフォントが異なるためにストリングの長さが変更されると、レイアウト・マネージャーがそれぞれのコンポーネントを再配置します。ランタイムにユーザーがウィンドウをサイズ変更すると、レイアウト・マネージャーもそれぞれのコンポーネントを再配置し、新しい全体のサイズを最適化します。これにより、ラベル・ストリング、フォント、またはウィンドウ・サイズを変更できる環境にデプロイされるユーザー・インターフェースの構築には、レイアウト・マネージャーがきわめて重要になります。
Swing および Abstract Windows Toolkit (AWT) コンテナーは、レイアウト・マネージャーの同じセット (ほとんどが AWT オブジェクトです) を使用します。Standard Widget Toolkit (SWT) コンテナーは、独自の SWT レイアウト・マネージャーを使用します。