java.lang.Object java.awt.BorderLayout
public class BorderLayout
这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识: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
。为了与其他组件使用的相对定位常量一致,应优先使用后一组常量。
将绝对定位常量与相对定位常量混合会产生无法预料的结果。如果两种类型的常量都使用,则优先采用相对常量。例如,如果同时使用 NORTH
和 PAGE_START
常量在方向性为 LEFT_TO_RIGHT
的容器中添加组件,则只体现 PAGE_START
布局。
注:目前,在 Java 2 Platform v1.2 中,BorderLayout
不支持垂直方向。不考虑容器的 ComponentOrientation
上 isVertical
设置。
根据其首选大小和容器大小的约束 (constraints) 对组件进行布局。NORTH
和 SOUTH
组件可以在水平方向上拉伸;而 EAST
和 WEST
组件可以在垂直方向上拉伸;CENTER
组件可同时在水平和垂直方向上拉伸,从而填充所有剩余空间。
以下是一个使用 BorderLayout
布局管理器的例子,它对一个 applet 中的五个按钮进行布局:
此 applet 的代码如下:
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); } }
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 中间区域的布局约束(容器中央)。 |
static String |
EAST 东区域的布局约束(容器右边)。 |
static String |
LINE_END 组件出现在布局的行方向的结尾处。 |
static String |
LINE_START 组件出现在布局的行方向的开始处。 |
static String |
NORTH 北区域的布局约束(容器顶部)。 |
static String |
PAGE_END 组件出现在最后一行布局内容之后。 |
static String |
PAGE_START 组件出现在第一行布局内容之前。 |
static String |
SOUTH 南区域的布局约束(容器底部)。 |
static String |
WEST 西区域的布局约束(容器左边)。 |
构造方法摘要 | |
---|---|
BorderLayout() 构造一个组件之间没有间距的新边框布局。 |
|
BorderLayout(int hgap, int vgap) 构造一个具有指定组件间距的边框布局。 |
方法摘要 | |
---|---|
void |
addLayoutComponent(Component comp, Object constraints) 使用指定的约束对象将指定组件添加到布局中。 |
void |
addLayoutComponent(String name, Component comp) 已过时。 由 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 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
public static final String NORTH
public static final String SOUTH
public static final String EAST
public static final String WEST
public static final String CENTER
public static final String BEFORE_FIRST_LINE
PAGE_START
,
常量字段值
public static final String AFTER_LAST_LINE
public static final String BEFORE_LINE_BEGINS
LINE_START
,
常量字段值
public static final String AFTER_LINE_ENDS
public static final String PAGE_START
Component.getComponentOrientation()
,
常量字段值
public static final String PAGE_END
Component.getComponentOrientation()
,
常量字段值
public static final String LINE_START
Component.getComponentOrientation()
,
常量字段值
public static final String LINE_END
Component.getComponentOrientation()
,
常量字段值
构造方法详细信息 |
---|
public BorderLayout()
public BorderLayout(int hgap, int vgap)
hgap
指定,垂直间距由
vgap
指定。
hgap
- 水平间距。
vgap
- 垂直间距。
方法详细信息 |
---|
public int getHgap()
public void setHgap(int hgap)
hgap
- 组件之间的水平间距
public int getVgap()
public void setVgap(int vgap)
vgap
- 组件之间的垂直间距
public void addLayoutComponent(Component comp, Object constraints)
NORTH
、
SOUTH
、
EAST
、
WEST
或
CENTER
。
大多数应用程序并不直接调用此方法。当使用 Container.add
方法将组件添加到容器中时,可以使用相同的参数类型调用此方法。
LayoutManager2
中的
addLayoutComponent
comp
- 要添加的组件。
constraints
- 指定将组件添加到布局中的方式和位置的对象。
IllegalArgumentException
- 如果约束对象不是一个字符串,或者它不是五种指定约束之一。
Container.add(java.awt.Component, java.lang.Object)
@Deprecated public void addLayoutComponent(String name, Component comp)
addLayoutComponent(Component, Object)
取代。
LayoutManager
复制的描述
comp
添加到布局,并将它与
name
指定的字符串关联。
LayoutManager
中的
addLayoutComponent
name
- 要与组件关联的字符串
comp
- 要添加的组件
public void removeLayoutComponent(Component comp)
remove
或
removeAll
方法时,可调用此方法。大多数应用程序并不直接调用此方法。
LayoutManager
中的
removeLayoutComponent
comp
- 要移除的组件。
Container.remove(java.awt.Component)
,
Container.removeAll()
public Component getLayoutComponent(Object constraints)
constraints
- 所需的约束,它是
CENTER
、
NORTH
、
SOUTH
、
WEST
、
EAST
、
PAGE_START
、
PAGE_END
、
LINE_START
、
LINE_END
之一
null
IllegalArgumentException
- 如果约束对象不是九个指定约束之一
addLayoutComponent(java.awt.Component, java.lang.Object)
public Component getLayoutComponent(Container target, Object constraints)
Container
的组件方向,返回给定约束位置对应的组件。利用相对约束
PAGE_START
、
PAGE_END
、
LINE_START
和
LINE_END
添加的组件优先于利用显式约束
NORTH
、
SOUTH
、
WEST
和
EAST
添加的组件。
Container
的组件方向用于确定利用
LINE_START
和
LINE_END
添加的组件的位置。
constraints
- 所需的绝对位置,
CENTER
、
NORTH
、
SOUTH
、
EAST
和
WEST
之一
target
-
Container
,用来获取基于目标
Container
组件方向的约束位置。
null
IllegalArgumentException
- 如果约束对象不是五个指定约束之一
NullPointerException
- 如果目标参数为 null
addLayoutComponent(java.awt.Component, java.lang.Object)
public Object getConstraints(Component comp)
comp
- 要查询的组件
addLayoutComponent(java.awt.Component, java.lang.Object)
public Dimension minimumLayoutSize(Container target)
target
容器的最小大小。
当容器调用其 getMinimumSize
方法时,可以调用此方法。大多数应用程序并不直接调用此方法。
LayoutManager
中的
minimumLayoutSize
target
- 在其中进行布局的容器。
Container
,
preferredLayoutSize(java.awt.Container)
,
Container.getMinimumSize()
public Dimension preferredLayoutSize(Container target)
target
容器的首选大小。
大多数应用程序并不直接调用此方法。容器调用其 getPreferredSize
方法时将调用此方法。
LayoutManager
中的
preferredLayoutSize
target
- 在其中进行布局的容器。
Container
,
minimumLayoutSize(java.awt.Container)
,
Container.getPreferredSize()
public Dimension maximumLayoutSize(Container target)
LayoutManager2
中的
maximumLayoutSize
target
- 需要对其进行布局的组件
Container
,
minimumLayoutSize(java.awt.Container)
,
preferredLayoutSize(java.awt.Container)
public float getLayoutAlignmentX(Container parent)
LayoutManager2
中的
getLayoutAlignmentX
public float getLayoutAlignmentY(Container parent)
LayoutManager2
中的
getLayoutAlignmentY
public void invalidateLayout(Container target)
LayoutManager2
中的
invalidateLayout
public void layoutContainer(Container target)
为了满足此 BorderLayout
对象的约束条件,此方法实际上会重塑指定容器中的组件。NORTH
和 SOUTH
组件(如果有)分别放置在容器的顶部和底部。WEST
和 EAST
组件分别放置在容器的左边和右边。最后,CENTER
对象放置在中间的任何剩余空间内。
大多数应用程序并不直接调用此方法。容器调用其 doLayout
方法时将调用此方法。
LayoutManager
中的
layoutContainer
target
- 在其中进行布局的容器。
Container
,
Container.doLayout()
public String toString()