模块 java.desktop
 java.awt

类 BorderLayout

java.lang.Object
java.awt.BorderLayout
所有已实现的接口:
LayoutManager , LayoutManager2 , Serializable

public class BorderLayout extends Object implements LayoutManager2 , Serializable
边界布局布局一个容器,排列和调整其组件的大小以适应五个区域:北、南、东、西和中。每个区域最多只能包含一个组件,并由相应的常量标识:NORTHSOUTHEASTWESTCENTER。向具有边框布局的容器添加组件时,使用这五个常量之一,例如:
  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_STARTLINE_END。在 ComponentOrientation 设置为 ComponentOrientation.LEFT_TO_RIGHT 的容器中,这些常量分别映射到 NORTHSOUTHWESTEAST

为了与以前的版本兼容,BorderLayout 还包括相对定位常量 BEFORE_FIRST_LINEAFTER_LAST_LINEBEFORE_LINE_BEGINSAFTER_LINE_ENDS。这些分别相当于 PAGE_STARTPAGE_ENDLINE_STARTLINE_END 。为了与其他组件使用的相对定位常量保持一致,后者的常量是首选。

混合绝对和相对定位常量会导致不可预知的结果。如果您同时使用这两种类型,则相对常数将优先。例如,如果您在方向为 LEFT_TO_RIGHT 的容器中使用 NORTHPAGE_START 常量添加组件,则只会布置 PAGE_START

注意:目前,BorderLayout 不支持垂直方向。不遵守容器 ComponentOrientation 上的 isVertical 设置。

组件根据它们的首选大小和容器大小的限制进行布局。 NORTHSOUTH 组件可以水平拉伸; EASTWEST 组件可以垂直拉伸; CENTER 组件可能会水平和垂直拉伸以填充剩余的任何空间。

下面是使用 BorderLayout 布局管理器布局的小程序中五个按钮的示例:

Diagram of an applet
 demonstrating BorderLayout. Each section of the BorderLayout contains a
 Button corresponding to its position in the layout, one of: North, West,
 Center, East, or 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
参见:
  • 字段详细信息

    • NORTH

      public static final String  NORTH
      北布局约束(容器顶部)。
      参见:
    • SOUTH

      public static final String  SOUTH
      南布局约束(容器底部)。
      参见:
    • EAST

      public static final String  EAST
      东布局约束(容器的右侧)。
      参见:
    • WEST

      public static final String  WEST
      西布局约束(容器的左侧)。
      参见:
    • CENTER

      public static final String  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
      该组件位于布局内容的第一行之前。对于西方、从左到右和从上到下的方向,这等同于 NORTH。
      自从:
      1.4
      参见:
    • PAGE_END

      public static final String  PAGE_END
      该组件位于布局内容的最后一行之后。对于西方、从左到右和从上到下的方向,这等同于 SOUTH。
      自从:
      1.4
      参见:
    • LINE_START

      public static final String  LINE_START
      该组件位于布局线方向的开头。对于西方、从左到右和从上到下的方向,这等同于 WEST。
      自从:
      1.4
      参见:
    • LINE_END

      public static final String  LINE_END
      该组件位于布局线方向的末尾。对于西方、从左到右和从上到下的方向,这等同于 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 - 如果约束对象不是字符串,或者它不是五个指定常量之一。
      自从:
      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)
      从此边框布局中移除指定的组件。当容器调用其 removeremoveAll 方法时调用此方法。大多数应用程序不直接调用此方法。
      指定者:
      removeLayoutComponent 在接口 LayoutManager
      参数:
      comp - 要删除的组件。
      参见:
    • getLayoutComponent

      public Component  getLayoutComponent(Object  constraints)
      获取使用给定约束添加的组件
      参数:
      constraints - 所需的约束,CENTERNORTHSOUTHWESTEASTPAGE_STARTPAGE_ENDLINE_STARTLINE_END之一
      返回:
      给定位置的组件,如果位置为空,则为 null
      抛出:
      IllegalArgumentException - 如果约束对象不是九个指定常量之一
      自从:
      1.5
      参见:
    • getLayoutComponent

      public Component  getLayoutComponent(Container  target, Object  constraints)
      根据目标 Container 的组件方向返回对应于给定约束位置的组件。添加了相对约束 PAGE_STARTPAGE_ENDLINE_STARTLINE_END 的组件优先于添加了显式约束 NORTHSOUTHWESTEAST 的组件。 Container 的组件方向用于确定添加了 LINE_STARTLINE_END 的组件的位置。
      参数:
      target - Container 用于根据目标 Container 的组件方向获取约束位置。
      constraints - 所需的绝对位置,CENTERNORTHSOUTHEASTWEST之一
      返回:
      给定位置的组件,如果位置为空,则为 null
      抛出:
      IllegalArgumentException - 如果约束对象不是五个指定常量之一
      NullPointerException - 如果目标参数为空
      自从:
      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对象的约束。 NORTHSOUTH 组件(如果有)分别放置在容器的顶部和底部。然后将 WESTEAST 组件分别放置在左侧和右侧。最后,CENTER 对象被放置在中间的任何剩余空间中。

      大多数应用程序不直接调用此方法。当容器调用其 doLayout 方法时调用此方法。

      指定者:
      layoutContainer 在接口 LayoutManager
      参数:
      target - 进行布局的容器。
      参见:
    • toString

      public String  toString()
      返回此边框布局状态的字符串表示形式。
      重写:
      toString 在类 Object
      返回:
      此边框布局的字符串表示形式。