モジュール 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
関連項目:
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)
    コンポーネント間に間隔を指定して、新しいボーダー・レイアウトを構築します。
  • メソッドのサマリー

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

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

    cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait
  • フィールド詳細

  • コンストラクタの詳細

    • 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

      @Deprecatedpublic void addLayoutComponent​(String name, Component comp)
      Deprecated.
      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()
    • maximumLayoutSize

      public Dimension maximumLayoutSize​(Container target)
      指定されたターゲット・コンテナにコンポーネントが与えられた場合の、レイアウトの最大サイズを返します。
      定義:
      maximumLayoutSize、インタフェース: LayoutManager2
      パラメータ:
      target - レイアウトが必要なコンポーネント
      戻り値:
      コンテナの最大サイズ
      関連項目:
      Container, minimumLayoutSize(java.awt.Container), preferredLayoutSize(java.awt.Container)
    • 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
      戻り値:
      このボーダー・レイアウトの文字列表現