- 所有已实现的接口:
LayoutManager,LayoutManager2,Serializable
NORTH、SOUTH、EAST、WEST 和 CENTER。向具有边框布局的容器添加组件时,使用这五个常量之一,例如:
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_START、PAGE_END、LINE_START 和 LINE_END。在 ComponentOrientation 设置为 ComponentOrientation.LEFT_TO_RIGHT 的容器中,这些常量分别映射到 NORTH、SOUTH、WEST 和 EAST。
为了与以前的版本兼容,BorderLayout 还包括相对定位常量 BEFORE_FIRST_LINE、AFTER_LAST_LINE、BEFORE_LINE_BEGINS 和 AFTER_LINE_ENDS。这些分别相当于 PAGE_START 、 PAGE_END 、 LINE_START 和 LINE_END 。为了与其他组件使用的相对定位常量保持一致,后者的常量是首选。
混合绝对和相对定位常量会导致不可预知的结果。如果您同时使用这两种类型,则相对常数将优先。例如,如果您在方向为 LEFT_TO_RIGHT 的容器中使用 NORTH 和 PAGE_START 常量添加组件,则只会布置 PAGE_START。
注意:目前,BorderLayout 不支持垂直方向。不遵守容器 ComponentOrientation 上的 isVertical 设置。
组件根据它们的首选大小和容器大小的限制进行布局。 NORTH 和 SOUTH 组件可以水平拉伸; EAST 和 WEST 组件可以垂直拉伸; CENTER 组件可能会水平和垂直拉伸以填充剩余的任何空间。
下面是使用 BorderLayout 布局管理器布局的小程序中五个按钮的示例:

这个小程序的代码如下:
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
- 参见:
-
字段摘要
字段修饰符和类型Field描述static final StringPAGE_END 的同义词。static final StringLINE_END 的同义词。static final StringPAGE_START 的同义词。static final StringLINE_START 的同义词。static final String中心布局约束(容器中间)。static final String东布局约束(容器的右侧)。static final String该组件位于布局线方向的末尾。static final String该组件位于布局线方向的开头。static final String北布局约束(容器顶部)。static final String该组件位于布局内容的最后一行之后。static final String该组件位于布局内容的第一行之前。static final String南布局约束(容器底部)。static final String西布局约束(容器的左侧)。 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述voidaddLayoutComponent(Component comp, Object constraints) 使用指定的约束对象将指定的组件添加到布局中。voidaddLayoutComponent(String name, Component comp) 已弃用。getConstraints(Component comp) 获取指定组件的约束intgetHgap()返回组件之间的水平间距。floatgetLayoutAlignmentX(Container parent) 返回沿 x 轴的对齐方式。floatgetLayoutAlignmentY(Container parent) 返回沿 y 轴的对齐方式。getLayoutComponent(Container target, Object constraints) 根据目标Container的组件方向返回对应于给定约束位置的组件。getLayoutComponent(Object constraints) 获取使用给定约束添加的组件intgetVgap()返回组件之间的垂直间隙。voidinvalidateLayout(Container target) 使布局无效,表示如果布局管理器缓存了信息,则应将其丢弃。voidlayoutContainer(Container target) 使用此边框布局布置容器参数。maximumLayoutSize(Container target) 给定指定目标容器中的组件,返回此布局的最大尺寸。minimumLayoutSize(Container target) 使用此布局管理器确定target容器的最小尺寸。preferredLayoutSize(Container target) 根据容器中的组件,使用此布局管理器确定target容器的首选大小。void从此边框布局中移除指定的组件。voidsetHgap(int hgap) 设置组件之间的水平间距。voidsetVgap(int vgap) 设置组件之间的垂直间隙。toString()返回此边框布局状态的字符串表示形式。
-
字段详细信息
-
NORTH
北布局约束(容器顶部)。- 参见:
-
SOUTH
南布局约束(容器底部)。- 参见:
-
EAST
东布局约束(容器的右侧)。- 参见:
-
WEST
西布局约束(容器的左侧)。- 参见:
-
CENTER
中心布局约束(容器中间)。- 参见:
-
BEFORE_FIRST_LINE
PAGE_START 的同义词。存在是为了与以前的版本兼容。首选 PAGE_START。- 自从:
- 1.2
- 参见:
-
AFTER_LAST_LINE
PAGE_END 的同义词。存在是为了与以前的版本兼容。首选 PAGE_END。- 自从:
- 1.2
- 参见:
-
BEFORE_LINE_BEGINS
LINE_START 的同义词。存在是为了与以前的版本兼容。首选 LINE_START。- 自从:
- 1.2
- 参见:
-
AFTER_LINE_ENDS
LINE_END 的同义词。存在是为了与以前的版本兼容。首选 LINE_END。- 自从:
- 1.2
- 参见:
-
PAGE_START
该组件位于布局内容的第一行之前。对于西方、从左到右和从上到下的方向,这等同于 NORTH。- 自从:
- 1.4
- 参见:
-
PAGE_END
该组件位于布局内容的最后一行之后。对于西方、从左到右和从上到下的方向,这等同于 SOUTH。- 自从:
- 1.4
- 参见:
-
LINE_START
该组件位于布局线方向的开头。对于西方、从左到右和从上到下的方向,这等同于 WEST。- 自从:
- 1.4
- 参见:
-
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
使用指定的约束对象将指定的组件添加到布局中。对于边框布局,约束必须是以下常量之一:NORTH、SOUTH、EAST、WEST或CENTER。大多数应用程序不直接调用此方法。当使用具有相同参数类型的
Container.add方法将组件添加到容器时,将调用此方法。- 指定者:
addLayoutComponent在接口LayoutManager2中- 参数:
comp- 要添加的组件。constraints- 指定组件添加到布局的方式和位置的对象。- 抛出:
IllegalArgumentException- 如果约束对象不是字符串,或者它不是五个指定常量之一。- 自从:
- 1.1
- 参见:
-
addLayoutComponent
已弃用。替换为addLayoutComponent(Component, Object)。从接口LayoutManager复制的描述如果布局管理器使用每个组件字符串,则将组件comp添加到布局中,将其与name指定的字符串相关联。- 指定者:
addLayoutComponent在接口LayoutManager中- 参数:
name- 要与组件关联的字符串comp- 要添加的组件
-
removeLayoutComponent
从此边框布局中移除指定的组件。当容器调用其remove或removeAll方法时调用此方法。大多数应用程序不直接调用此方法。- 指定者:
removeLayoutComponent在接口LayoutManager中- 参数:
comp- 要删除的组件。- 参见:
-
getLayoutComponent
获取使用给定约束添加的组件- 参数:
constraints- 所需的约束,CENTER、NORTH、SOUTH、WEST、EAST、PAGE_START、PAGE_END、LINE_START、LINE_END之一- 返回:
-
给定位置的组件,如果位置为空,则为
null - 抛出:
IllegalArgumentException- 如果约束对象不是九个指定常量之一- 自从:
- 1.5
- 参见:
-
getLayoutComponent
根据目标Container的组件方向返回对应于给定约束位置的组件。添加了相对约束PAGE_START、PAGE_END、LINE_START和LINE_END的组件优先于添加了显式约束NORTH、SOUTH、WEST和EAST的组件。Container的组件方向用于确定添加了LINE_START和LINE_END的组件的位置。- 参数:
target-Container用于根据目标Container的组件方向获取约束位置。constraints- 所需的绝对位置,CENTER、NORTH、SOUTH、EAST、WEST之一- 返回:
-
给定位置的组件,如果位置为空,则为
null - 抛出:
IllegalArgumentException- 如果约束对象不是五个指定常量之一NullPointerException- 如果目标参数为空- 自从:
- 1.5
- 参见:
-
getConstraints
获取指定组件的约束- 参数:
comp- 要查询的组件- 返回:
- 指定组件的约束,如果组件为 null 或不存在于此布局中,则为 null
- 自从:
- 1.5
- 参见:
-
minimumLayoutSize
使用此布局管理器确定target容器的最小尺寸。当容器调用其
getMinimumSize方法时调用此方法。大多数应用程序不直接调用此方法。- 指定者:
minimumLayoutSize在接口LayoutManager中- 参数:
target- 进行布局的容器。- 返回:
- 布置指定容器的子组件所需的最小尺寸。
- 参见:
-
preferredLayoutSize
根据容器中的组件,使用此布局管理器确定target容器的首选大小。大多数应用程序不直接调用此方法。当容器调用其
getPreferredSize方法时调用此方法。- 指定者:
preferredLayoutSize在接口LayoutManager中- 参数:
target- 进行布局的容器。- 返回:
- 用于布置指定容器的子组件的首选尺寸。
- 参见:
-
maximumLayoutSize
给定指定目标容器中的组件,返回此布局的最大尺寸。- 指定者:
maximumLayoutSize在接口LayoutManager2中- 参数:
target- 需要布局的组件- 返回:
- 容器的最大尺寸
- 参见:
-
getLayoutAlignmentX
返回沿 x 轴的对齐方式。这指定组件如何相对于其他组件对齐。该值应为 0 到 1 之间的数字,其中 0 表示沿原点对齐,1 表示离原点最远,0.5 表示居中,等等。- 指定者:
getLayoutAlignmentX在接口LayoutManager2中- 参数:
parent- 目标容器- 返回:
- x 轴对齐首选项
-
getLayoutAlignmentY
返回沿 y 轴的对齐方式。这指定组件如何相对于其他组件对齐。该值应为 0 到 1 之间的数字,其中 0 表示沿原点对齐,1 表示离原点最远,0.5 表示居中,等等。- 指定者:
getLayoutAlignmentY在接口LayoutManager2中- 参数:
parent- 目标容器- 返回:
- y 轴对齐首选项
-
invalidateLayout
使布局无效,表示如果布局管理器缓存了信息,则应将其丢弃。- 指定者:
invalidateLayout在接口LayoutManager2中- 参数:
target- 目标容器
-
layoutContainer
使用此边框布局布置容器参数。该方法实际上是对指定容器中的组件进行重塑以满足该
BorderLayout对象的约束。NORTH和SOUTH组件(如果有)分别放置在容器的顶部和底部。然后将WEST和EAST组件分别放置在左侧和右侧。最后,CENTER对象被放置在中间的任何剩余空间中。大多数应用程序不直接调用此方法。当容器调用其
doLayout方法时调用此方法。- 指定者:
layoutContainer在接口LayoutManager中- 参数:
target- 进行布局的容器。- 参见:
-
toString
返回此边框布局状态的字符串表示形式。
-
addLayoutComponent(Component, Object)。