BorderLayoutについて

BorderLayoutは、上、下、右、左および中央の領域にコンテナのコンポーネントを配置します。

layoutborderの例

BorderLayoutは、コンテナの1つ以上の境界線にコンポーネントを適用し、コンテナの中央を1つのコンポーネントで埋める場合に効果的です。また、単一コンポーネントでコンテナを完全に埋めるために使用するレイアウトでもあります。

BorderLayoutは、UI内の大き目のコンテナに最も有用なレイアウト・マネージャであることがわかります。BorderLayoutの各領域内にパネルをネストしてから、これらの各パネルに各種レイアウトのその他のパネルを移入することで、非常に複雑なUI設計を実現できます。

コンポーネントは、constraintsプロパティに基づき、BorderLayout内の5つの領域のいずれかに配置されます。インスペクタにおいて、コンポーネントのconstraintsプロパティを、「上」、「下」、「右」、「左」または「中央」のいずれかの値に設定できます。

たとえば、BorderLayoutコンテナの最上部全体にツールバーを配置するには、ボタンのFlowLayoutパネルを作成し、これをコンテナの「上」領域に配置します。このためには、パネルを選択し、インスペクタでconstraintsプロパティに対し「上」を選択します。

constraintsプロパティを設定する手順は、次のとおりです。

  1. Javaビジュアル・エディタまたは構造ウィンドウのいずれかで、配置するコンポーネントを選択します。
  2. インスペクタでconstraintsプロパティを選択し、その値フィールドをクリックします。
  3. constraintsプロパティ・ドロップダウン・リストの下矢印をクリックし、コンポーネントを挿入する領域を選択します。
  4. [Enter]を押すか、プロパティ・インスペクタ内の他の任意の場所をクリックし、コードに対する変更をコミットします。

JDeveloperのJavaビジュアル・エディタを使用して、既存のコンテナのレイアウトをBorderLayoutに変更した場合、境界線近くのコンポーネントは最も近い境界線に接するよう自動的に移動します。中央に近いコンポーネントは「中央」に設定される場合があります。コンポーネントが意図しない場所に移動する場合、インスペクタでconstraintsプロパティを訂正するか、Javaビジュアル・エディタで新しい場所にコンポーネントをドラッグできます。

5つの各領域には任意の数のコンポーネント(またはコンポーネントのパネル)を含めることができますが、最上位のコンポーネントが不透明でない場合を除いて、同じ領域内にある下位コンポーネントはすべて最上位のコンポーネントによって覆われます。

複数のコンポーネントおよびBorderLayoutの使用に関する一般的なガイドラインを次に示します。

注意:BorderLayoutでは、コンポーネントをコンテナに追加する順序は無視されます。

デフォルトにより、BorderLayoutが管理するコンポーネント間にギャップは挿入されません。ただし、インスペクタを使用して、コンテナに関連付けられたBorderLayoutに対し、水平または垂直のギャップをピクセル単位で指定できます。

BorderLayoutコンポーネントの周囲のギャップを変更するには、構造ウィンドウで、(BorderLayoutが管理するコンテナの真下に表示される)BorderLayoutオブジェクトを選択してから、プロパティ・インスペクタで、hgapおよびvgapプロパティのピクセル値を変更します。


ネストされたパネルおよびレイアウトの使用