- 所有已实现的接口:
-
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()); // 相当于 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 Summary
FieldsModifier and TypeFieldDescriptionstatic 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西侧布局约束(容器的左侧)。 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddLayoutComponent(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()返回此边界布局状态的字符串表示形式。
-
Field Details
-
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
- 参见:
-
-
Constructor Details
-
BorderLayout
public BorderLayout()构造一个没有组件之间间隙的新边界布局。 -
BorderLayout
public BorderLayout(int hgap, int vgap) 使用指定的组件之间间隙构造边界布局。水平间隙由hgap指定,垂直间隙由vgap指定。- 参数:
-
hgap- 水平间隙。 -
vgap- 垂直间隙。
-
-
Method Details
-
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
Deprecated.replaced byaddLayoutComponent(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- 如果目标参数为null - 自从:
- 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)取代。