モジュール java.desktop
パッケージ java.awt

クラスBorderLayout

java.lang.Object
java.awt.BorderLayout
すべての実装されたインタフェース:
LayoutManager, LayoutManager2, Serializable

public class BorderLayout extends Object implements LayoutManager2, Serializable
ボーダー・レイアウトは、north (上端)、south (下端)、east (右端)、west (左端)、およびcenter (中央)という5つの領域に収まるように、コンポーネントを整列およびサイズ変更して、コンテナに配置します。 各領域はコンポーネントを最大1つずつ含むことができ、それぞれ対応する定数NORTH (上端)、SOUTH (下端)、EAST (右端)、WEST (左端)、CENTER (中央)によって識別されます。 ボーダー・レイアウトを使ってコンテナにコンポーネントを追加するときは、5つの定数のいずれかを使用します。たとえば:
    Panel p = new Panel();
    p.setLayout(new BorderLayout());
    p.add(new Button("Okay"), BorderLayout.SOUTH);
 
次に示すように、文字列の指定がない場合には、BorderLayoutは定数CENTERが指定されたと解釈します。
    Panel p2 = new Panel();
    p2.setLayout(new BorderLayout());
    p2.add(new TextArea());  // Same as p.add(new TextArea(), BorderLayout.CENTER);
 

また、BorderLayoutは、PAGE_STARTPAGE_ENDLINE_START、およびLINE_ENDという相対位置指定定数をサポートします。 ComponentOrientationComponentOrientation.LEFT_TO_RIGHTに設定されているコンテナでは、これらの定数はそれぞれNORTHSOUTHWESTEASTにマッピングされます。

以前のリリースとの互換性を保つため、BorderLayoutにはBEFORE_FIRST_LINEAFTER_LAST_LINEBEFORE_LINE_BEGINS、およびAFTER_LINE_ENDSという相対位置指定定数も用意されています。 これらはそれぞれPAGE_STARTPAGE_ENDLINE_START、およびLINE_ENDと同じ意味を持ちます。 ほかのコンポーネントの相対位置指定定数との互換性の面から、できるだけあとの4つを使用します。

絶対位置指定定数と相対位置指定定数を同時に使用すると、予期せぬ結果が生じることがあります。 両方の種類の定数を使用した場合は、相対位置指定定数が優先されます。 たとえば、向きがLEFT_TO_RIGHTのコンテナにNORTHPAGE_STARTの両方の定数を使用してコンポーネントを追加すると、PAGE_STARTのみがレイアウトされます。

NOTE: 現在、BorderLayoutは垂直方向をサポートしていません。 コンテナのComponentOrientationisVerticalの設定値は無視されます。

コンポーネントはそれらの推奨サイズやコンテナ・サイズの制約を満たすように配置されます。 NORTHコンポーネントおよびSOUTHコンポーネントは水平方向に引き伸ばされます。EASTコンポーネントおよびWESTコンポーネントは垂直方向に引き伸ばされます。CENTERコンポーネントは、スペースを残さないように、水平および垂直の両方向に引き伸ばされます。

次の例では、BorderLayoutレイアウト・マネージャを使ってアプレット内に5つのボタンが配置されます。

BorderLayoutを示すアプレットの図。 BorderLayoutの各セクションには、レイアウトのその位置に対応するボタン(North、West、Center、East、またはSouthのいずれか)を含む

このアプレットのコードは次のとおりです。


 import java.awt.*;
 import java.applet.Applet;

 public class buttonDir extends Applet {
   public void init() {
     setLayout(new BorderLayout());
     add(new Button("North"), BorderLayout.NORTH);
     add(new Button("South"), BorderLayout.SOUTH);
     add(new Button("East"), BorderLayout.EAST);
     add(new Button("West"), BorderLayout.WEST);
     add(new Button("Center"), BorderLayout.CENTER);
   }
 }
 

導入されたバージョン:
1.0
関連項目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final String
    PAGE_ENDと同じ意味を持ちます。
    static final String
    LINE_ENDと同じ意味を持ちます。
    static final String
    PAGE_STARTと同じ意味を持ちます。
    static final String
    LINE_STARTと同じ意味を持ちます。
    static final String
    centerのレイアウト制約(コンテナの中央)です。
    static final String
    eastのレイアウト制約(コンテナの右端)です。
    static final String
    コンポーネントはレイアウトの行方向の最後に配置されます。
    static final String
    コンポーネントはレイアウトの行方向の先頭に配置されます。
    static final String
    northのレイアウト制約(コンテナの上端)です。
    static final String
    コンポーネントはレイアウトの内容の最終行のあとに配置されます。
    static final String
    コンポーネントはレイアウトの内容の先頭行の前に配置されます。
    static final String
    southのレイアウト制約(コンテナの下端)です。
    static final String
    westのレイアウト制約(コンテナの左端)です。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    コンポーネント間に間隔を設けずに、新しいボーダー・レイアウトを構築します。
    BorderLayout(int hgap, int vgap)
    コンポーネント間に間隔を指定して、新しいボーダー・レイアウトを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    addLayoutComponent(Component comp, Object constraints)
    指定された制約オブジェクトを使って、指定されたコンポーネントをレイアウトに追加します。
    void
    非推奨。
    addLayoutComponent(Component, Object)に置き換えられています。
    指定されたコンポーネントの制約を取得します。
    int
    コンポーネント間の水平方向の間隔を返します。
    float
    x軸方向の配置を返します。
    float
    y軸方向の配置を返します。
    getLayoutComponent(Container target, Object constraints)
    ターゲットContainerのコンポーネント方向に基づいて、指定された制約の場所に対応するコンポーネントを返します。
    指定された制約で追加されたコンポーネントを取得します。
    int
    コンポーネント間の垂直方向の間隔を返します。
    void
    レイアウトを無効にします。このとき、レイアウト・マネージャが情報をキャッシュしていればそれを破棄します。
    void
    このボーダー・レイアウトを使用してコンテナ引数を配置します。
    指定されたターゲット・コンテナにコンポーネントが与えられた場合の、レイアウトの最大サイズを返します。
    このレイアウト・マネージャを使用するtargetコンテナの最小サイズを判定します。
    コンテナ内のコンポーネントに基づいて、このレイアウト・マネージャを使用するtargetコンテナの推奨サイズを判定します。
    void
    このボーダー・レイアウトから、指定されたコンポーネントを削除します。
    void
    setHgap(int hgap)
    コンポーネント間の水平方向の間隔を設定します。
    void
    setVgap(int vgap)
    コンポーネント間の垂直方向の間隔を設定します。
    このボーダー・レイアウトの状態を示す文字列表現を返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • フィールド詳細

    • NORTH

      public static final String NORTH
      northのレイアウト制約(コンテナの上端)です。
      関連項目:
    • SOUTH

      public static final String SOUTH
      southのレイアウト制約(コンテナの下端)です。
      関連項目:
    • EAST

      public static final String EAST
      eastのレイアウト制約(コンテナの右端)です。
      関連項目:
    • WEST

      public static final String WEST
      westのレイアウト制約(コンテナの左端)です。
      関連項目:
    • CENTER

      public static final String CENTER
      centerのレイアウト制約(コンテナの中央)です。
      関連項目:
    • BEFORE_FIRST_LINE

      public static final String BEFORE_FIRST_LINE
      PAGE_STARTと同じ意味を持ちます。 以前のバージョンとの互換性のために残されています。 できるだけPAGE_STARTを使用します。
      導入されたバージョン:
      1.2
      関連項目:
    • AFTER_LAST_LINE

      public static final String AFTER_LAST_LINE
      PAGE_ENDと同じ意味を持ちます。 以前のバージョンとの互換性のために残されています。 できるだけPAGE_ENDを使用します。
      導入されたバージョン:
      1.2
      関連項目:
    • BEFORE_LINE_BEGINS

      public static final String BEFORE_LINE_BEGINS
      LINE_STARTと同じ意味を持ちます。 以前のバージョンとの互換性のために残されています。 できるだけLINE_STARTを使用します。
      導入されたバージョン:
      1.2
      関連項目:
    • AFTER_LINE_ENDS

      public static final String AFTER_LINE_ENDS
      LINE_ENDと同じ意味を持ちます。 以前のバージョンとの互換性のために残されています。 できるだけLINE_ENDを使用します。
      導入されたバージョン:
      1.2
      関連項目:
    • PAGE_START

      public static final String PAGE_START
      コンポーネントはレイアウトの内容の先頭行の前に配置されます。 WESTから見て左から右、上から下に配置が行われる場合、これはNORTHと同じになります。
      導入されたバージョン:
      1.4
      関連項目:
    • PAGE_END

      public static final String PAGE_END
      コンポーネントはレイアウトの内容の最終行のあとに配置されます。 WESTから見て左から右、上から下に配置が行われる場合、これはSOUTHと同じになります。
      導入されたバージョン:
      1.4
      関連項目:
    • LINE_START

      public static final String LINE_START
      コンポーネントはレイアウトの行方向の先頭に配置されます。 WESTから見て左から右、上から下に配置が行われる場合、これはWESTと同じになります。
      導入されたバージョン:
      1.4
      関連項目:
    • LINE_END

      public static final String LINE_END
      コンポーネントはレイアウトの行方向の最後に配置されます。 WESTから見て左から右、上から下に配置が行われる場合、これはEASTと同じになります。
      導入されたバージョン:
      1.4
      関連項目:
  • コンストラクタの詳細

    • BorderLayout

      public BorderLayout()
      コンポーネント間に間隔を設けずに、新しいボーダー・レイアウトを構築します。
    • BorderLayout

      public BorderLayout(int hgap, int vgap)
      コンポーネント間に間隔を指定して、新しいボーダー・レイアウトを構築します。 水平方向の間隔はhgapによって指定され、垂直方向の間隔はvgapによって指定されます。
      パラメータ:
      hgap - 水平方向の間隔。
      vgap - 垂直方向の間隔。
  • メソッドの詳細

    • getHgap

      public int getHgap()
      コンポーネント間の水平方向の間隔を返します。
      戻り値:
      コンポーネント間の水平方向の間隔
      導入されたバージョン:
      1.1
    • setHgap

      public void setHgap(int hgap)
      コンポーネント間の水平方向の間隔を設定します。
      パラメータ:
      hgap - コンポーネント間の水平方向の間隔
      導入されたバージョン:
      1.1
    • getVgap

      public int getVgap()
      コンポーネント間の垂直方向の間隔を返します。
      戻り値:
      コンポーネント間の垂直方向の間隔
      導入されたバージョン:
      1.1
    • setVgap

      public void setVgap(int vgap)
      コンポーネント間の垂直方向の間隔を設定します。
      パラメータ:
      vgap - コンポーネント間の垂直方向の間隔
      導入されたバージョン:
      1.1
    • addLayoutComponent

      public void addLayoutComponent(Component comp, Object constraints)
      指定された制約オブジェクトを使って、指定されたコンポーネントをレイアウトに追加します。 ボーダー・レイアウトでは、制約は、定数NORTHSOUTHEASTWESTCENTERのいずれかである必要があります。

      ほとんどのアプリケーションはこのメソッドを直接には呼び出しません。 このメソッドは、同じ引数の型でContainer.addメソッドを使ってコンポーネントがコンテナに追加されたときに呼び出されます。

      定義:
      addLayoutComponent、インタフェースLayoutManager2
      パラメータ:
      comp - 追加されるコンポーネント。
      constraints - コンポーネントがレイアウトに追加される方法と場所を指定するオブジェクト
      例外:
      IllegalArgumentException - 制約オブジェクトが文字列でない場合、または指定された5つの定数のどれでもない場合
      導入されたバージョン:
      1.1
      関連項目:
    • addLayoutComponent

      @Deprecated public void addLayoutComponent(String name, Component comp)
      非推奨。
      addLayoutComponent(Component, Object)に置き換えられています。
      インタフェースからコピーされた説明: LayoutManager
      レイアウト・マネージャがコンポーネントごとの文字列を使用する場合は、レイアウトにコンポーネントcompを追加し、それをnameによって指定された文字列に関連付けます。
      定義:
      addLayoutComponent、インタフェースLayoutManager
      パラメータ:
      name - コンポーネントに関連付けられる文字列
      comp - 追加されるコンポーネント
    • removeLayoutComponent

      public void removeLayoutComponent(Component comp)
      このボーダー・レイアウトから、指定されたコンポーネントを削除します。 このメソッドは、コンテナがremoveメソッドまたはremoveAllメソッドを呼び出したときに呼び出されます。 ほとんどのアプリケーションはこのメソッドを直接には呼び出しません。
      定義:
      removeLayoutComponent、インタフェースLayoutManager
      パラメータ:
      comp - 削除されるコンポーネント。
      関連項目:
    • getLayoutComponent

      public Component getLayoutComponent(Object constraints)
      指定された制約で追加されたコンポーネントを取得します。
      パラメータ:
      constraints - 目的の制約。CENTERNORTHSOUTHWESTEASTPAGE_STARTPAGE_ENDLINE_STARTLINE_ENDのいずれか
      戻り値:
      特定の位置にあるコンポーネント、またはその位置が空である場合はnull
      例外:
      IllegalArgumentException - 制約オブジェクトが指定された9つの定数のどれでもない場合
      導入されたバージョン:
      1.5
      関連項目:
    • getLayoutComponent

      public Component getLayoutComponent(Container target, Object constraints)
      ターゲットContainerのコンポーネント方向に基づいて、指定された制約の場所に対応するコンポーネントを返します。 相対的な制約PAGE_STARTPAGE_ENDLINE_START、およびLINE_ENDを指定して追加されたコンポーネントは、明示的な制約NORTHSOUTHWEST、およびEASTを指定して追加されたコンポーネントよりも優先されます。 Containerのコンポーネント方向は、LINE_STARTLINE_ENDを指定して追加されたコンポーネントの場所を判定するために使用されます。
      パラメータ:
      constraints - 目的の絶対位置。CENTERNORTHSOUTHEASTWESTのいずれか
      target - 制約の場所を取得するために使用するContainer。制約の場所は、Containerのコンポーネント方向に基づいて判定される
      戻り値:
      特定の位置にあるコンポーネント、またはその位置が空である場合はnull
      例外:
      IllegalArgumentException - 制約オブジェクトが指定された5つの定数のどれでもない場合
      NullPointerException - targetパラメータがnullの場合
      導入されたバージョン:
      1.5
      関連項目:
    • getConstraints

      public Object getConstraints(Component comp)
      指定されたコンポーネントの制約を取得します。
      パラメータ:
      comp - 照会されるコンポーネント
      戻り値:
      指定されたコンポーネントの制約。コンポーネントがnullか、このレイアウトに存在しない場合はnull
      導入されたバージョン:
      1.5
      関連項目:
    • minimumLayoutSize

      public Dimension minimumLayoutSize(Container target)
      このレイアウト・マネージャを使用するtargetコンテナの最小サイズを判定します。

      このメソッドは、コンテナがそのgetMinimumSizeメソッドを呼び出したときに呼び出されます。 ほとんどのアプリケーションはこのメソッドを直接には呼び出しません。

      定義:
      minimumLayoutSize、インタフェースLayoutManager
      パラメータ:
      target - レイアウトが行われるコンテナ。
      戻り値:
      指定されたコンテナのサブコンポーネントを配置するために必要な最小の寸法。
      関連項目:
    • preferredLayoutSize

      public Dimension preferredLayoutSize(Container target)
      コンテナ内のコンポーネントに基づいて、このレイアウト・マネージャを使用するtargetコンテナの推奨サイズを判定します。

      ほとんどのアプリケーションはこのメソッドを直接には呼び出しません。 このメソッドは、コンテナがそのgetPreferredSizeメソッドを呼び出したときに呼び出されます。

      定義:
      preferredLayoutSize、インタフェースLayoutManager
      パラメータ:
      target - レイアウトが行われるコンテナ。
      戻り値:
      指定されたコンテナのサブコンポーネントを配置するための望ましい寸法。
      関連項目:
    • maximumLayoutSize

      public Dimension maximumLayoutSize(Container target)
      指定されたターゲット・コンテナにコンポーネントが与えられた場合の、レイアウトの最大サイズを返します。
      定義:
      maximumLayoutSize、インタフェースLayoutManager2
      パラメータ:
      target - レイアウトが必要なコンポーネント
      戻り値:
      コンテナの最大サイズ
      関連項目:
    • getLayoutAlignmentX

      public float getLayoutAlignmentX(Container parent)
      x軸方向の配置を返します。 これは、ほかのコンポーネントを基準にこのコンポーネントをどのように配置するかを指定します。 この値は0から1の間の数値であるはずです(0は原点に沿った配置を表し、1は原点からもっとも遠いところに、0.5は中央に配置されます)。
      定義:
      getLayoutAlignmentX、インタフェースLayoutManager2
      パラメータ:
      parent - ターゲット・コンテナ
      戻り値:
      x軸整列のプリファレンス
    • getLayoutAlignmentY

      public float getLayoutAlignmentY(Container parent)
      y軸方向の配置を返します。 これは、ほかのコンポーネントを基準にこのコンポーネントをどのように配置するかを指定します。 この値は0から1の間の数値であるはずです(0は原点に沿った配置を表し、1は原点からもっとも遠いところに、0.5は中央に配置されます)。
      定義:
      getLayoutAlignmentY、インタフェースLayoutManager2
      パラメータ:
      parent - ターゲット・コンテナ
      戻り値:
      y軸整列のプリファレンス
    • invalidateLayout

      public void invalidateLayout(Container target)
      レイアウトを無効にします。このとき、レイアウト・マネージャが情報をキャッシュしていればそれを破棄します。
      定義:
      invalidateLayout、インタフェースLayoutManager2
      パラメータ:
      target - ターゲット・コンテナ
    • layoutContainer

      public void layoutContainer(Container target)
      このボーダー・レイアウトを使用してコンテナ引数を配置します。

      実際にはこのメソッドは、このBorderLayoutオブジェクトの制約を満たすために、指定されたコンテナ内のコンポーネントの形状を変更します。 NORTHコンポーネントおよびSOUTHコンポーネントがある場合、それらはコンテナのそれぞれ上部および下部に配置されます。 WESTコンポーネントおよびEASTコンポーネントは、それぞれ左および右に配置されます。 CENTERオブジェクトは中央の残りのスペースに配置されます。

      ほとんどのアプリケーションはこのメソッドを直接には呼び出しません。 このメソッドは、コンテナがそのdoLayoutメソッドを呼び出したときに呼び出されます。

      定義:
      layoutContainer、インタフェースLayoutManager
      パラメータ:
      target - レイアウトが行われるコンテナ。
      関連項目:
    • toString

      public String toString()
      このボーダー・レイアウトの状態を示す文字列表現を返します。
      オーバーライド:
      toString、クラスObject
      戻り値:
      このボーダー・レイアウトの文字列表現