モジュール java.desktop
パッケージ 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
    関連項目:
    Container.add(String, Component), ComponentOrientation, 直列化された形式
    • フィールドのサマリー

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

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

      • BEFORE_FIRST_LINE

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

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

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

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

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

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

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

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

      • 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
        関連項目:
        Container.add(java.awt.Component, java.lang.Object)
      • 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 - 削除されるコンポーネント。
        関連項目:
        Container.remove(java.awt.Component), Container.removeAll()
      • getLayoutComponent

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

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

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

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

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

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

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

        定義:
        preferredLayoutSize、インタフェースLayoutManager
        パラメータ:
        target - レイアウトが行われるコンテナ。
        戻り値:
        指定されたコンテナのサブコンポーネントを配置するための望ましい寸法
        関連項目:
        Container, minimumLayoutSize(java.awt.Container), Container.getPreferredSize()
      • 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 - レイアウトが行われるコンテナ。
        関連項目:
        Container, Container.doLayout()
      • toString

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