- 所有已实现的接口:
-
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
Modifier and TypeFieldDescriptionstatic final String
PAGE_END的同义词。static final String
LINE_END的同义词。static final String
PAGE_START的同义词。static final String
LINE_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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addLayoutComponent
(Component comp, Object constraints) 将指定的组件添加到布局中,使用指定的约束对象。void
addLayoutComponent
(String name, Component comp) 已弃用。getConstraints
(Component comp) 获取指定组件的约束int
getHgap()
返回组件之间的水平间隙。float
getLayoutAlignmentX
(Container parent) 返回沿x轴的对齐方式。float
getLayoutAlignmentY
(Container parent) 返回沿y轴的对齐方式。getLayoutComponent
(Container target, Object constraints) 根据目标Container
的组件方向,返回与给定约束位置对应的组件。getLayoutComponent
(Object constraints) 获取使用给定约束添加的组件int
getVgap()
返回组件之间的垂直间隙。void
invalidateLayout
(Container target) 使布局无效,表示如果布局管理器缓存了信息,则应丢弃。void
layoutContainer
(Container target) 使用此边界布局对容器进行布局。maximumLayoutSize
(Container target) 给定指定目标容器中的组件,返回此布局的最大尺寸。minimumLayoutSize
(Container target) 使用此布局管理器确定target
容器的最小尺寸。preferredLayoutSize
(Container target) 使用此布局管理器基于容器中的组件确定target
容器的首选尺寸。void
从此边界布局中移除指定的组件。void
setHgap
(int hgap) 设置组件之间的水平间隙。void
setVgap
(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)
取代。