BorderLayoutについて

BorderLayoutでは、North、South、East、WestおよびCenterという領域にコンテナのコンポーネントを配置します。

layoutborder example

BorderLayoutは、コンポーネントをコンテナの1つ以上の端に揃え、コンテナの中央部を1つのコンポーネントで埋める場合に適しています。これは、1つのコンポーネントでコンテナを埋める場合に適したレイアウトでもあります。

BorderLayoutは、UIの大型コンテナに最も役立つレイアウト・マネージャといえます。BorderLayoutの各領域内にパネルをネストし、これらの各パネルに様々なレイアウトの他のパネルを入れることで、非常に複雑なUI設計が可能になります。

コンポーネントは、constraintsプロパティに基づき、BorderLayout内の5領域の1つに配置されます。コンポーネントのconstraintsプロパティは、インスペクタでNorth、South、East、WestまたはCenterのいずれかに設定できます。

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

constraintsプロパティを設定するには、次のようにします。

  1. UIエディタまたは構造ウィンドウで、配置するコンポーネントを選択します。
  2. インスペクタで「constraints」プロパティを選択し、その値フィールドをクリックします。
  3. constraints」プロパティのドロップダウン・リストで下矢印をクリックし、コンポーネントを配置する領域を選択します。
  4. [Enter]を押すか、プロパティ・インスペクタの他の場所をクリックし、変更をコードに反映します。

JDeveloperのUIエディタを使用して既存コンテナのレイアウトをBorderLayoutに変更すると、枠に近いコンポーネントは、自動的に最も近い枠を埋めるように移動します。中央に近いコンポーネントは、「Center」に設定されます。コンポーネントが意図しない場所に移動した場合、インスペクタで「constraints」プロパティを訂正するか、UIエディタで新しい場所にコンポーネントをドラッグします。

5つの領域のそれぞれには、任意の数のコンポーネント(またはコンポーネントのパネル)を置くことができますが、一番上のコンポーネントが不透明であれば、同じ領域内の下のコンポーネントはすべてその下に隠れてしまいます。

複数のコンポーネントおよびBorderLayoutを扱う場合は、次の一般的ガイドラインに従ってください。

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

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

BorderLayoutコンポーネントの周りの間隔を変更するには、構造ウィンドウでBorderLayoutオブジェクト(制御するコンテナの直下に表示される)を選択し、プロパティ・インスペクタで「hgap」および「vgap」プロパティのピクセル値を変更します。


ネストされたコンテナおよびレイアウトの使用