public class BorderLayout extends Object implements LayoutManager2, Serializable
NORTH
, SOUTH
, EAST
, WEST
和CENTER
。
将组件添加到具有边框布局的容器时,请使用以下五个常量之一,例如:
Panel p = new Panel();
p.setLayout(new BorderLayout());
p.add(new Button("Okay"), BorderLayout.SOUTH);
为方便起见, BorderLayout
解释不存在与常数CENTER
相同的字符串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平台v1.2中), BorderLayout
不支持垂直方向。 该isVertical
在容器的设置ComponentOrientation
的不尊重。
组件根据其优选尺寸和容器尺寸的限制布置。 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); } }
Container.add(String, Component)
, ComponentOrientation
, Serialized Form
Modifier and Type | Field and Description |
---|---|
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
西布局限制(容器左侧)。
|
Constructor and Description |
---|
BorderLayout()
构建新的边框布局,组件间没有间隙。
|
BorderLayout(int hgap, int vgap)
构造具有组件之间指定间隙的边框布局。
|
Modifier and Type | Method and Description |
---|---|
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 target容器的最小大小。
|
Dimension |
preferredLayoutSize(Container target)
根据容器中的
target 确定使用此布局管理器的target容器的首选大小。
|
void |
removeLayoutComponent(Component comp)
从此边框布局中删除指定的组件。
|
void |
setHgap(int hgap)
设置组件之间的水平间距。
|
void |
setVgap(int vgap)
设置组件之间的垂直间距。
|
String |
toString()
返回此边框布局状态的字符串表示形式。
|
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
,
Constant Field Values
public static final String AFTER_LAST_LINE
PAGE_END
,
Constant Field Values
public static final String BEFORE_LINE_BEGINS
LINE_START
,
Constant Field Values
public static final String AFTER_LINE_ENDS
LINE_END
,
Constant Field Values
public static final String PAGE_START
Component.getComponentOrientation()
,
Constant Field Values
public static final String PAGE_END
Component.getComponentOrientation()
,
Constant Field Values
public static final String LINE_START
Component.getComponentOrientation()
,
Constant Field Values
public static final String LINE_END
Component.getComponentOrientation()
,
Constant Field Values
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
方法将Container.add
添加到容器时,将调用此方法。
addLayoutComponent
在界面
LayoutManager2
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指定的字符串相关
name
。
addLayoutComponent
在界面
LayoutManager
name
- 与
name
的字符串
comp
- 要添加的组件
public void removeLayoutComponent(Component comp)
remove
或removeAll
方法时,调用removeAll
方法。
大多数应用程序不直接调用此方法。
removeLayoutComponent
在界面
LayoutManager
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
如果位置为空,
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
如果位置为空,
null
IllegalArgumentException
- 如果约束对象不是五个指定常量之一
NullPointerException
- 如果目标参数为空
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
target容器的最小大小。
当容器调用其getMinimumSize
方法时调用getMinimumSize
方法。 大多数应用程序不直接调用此方法。
minimumLayoutSize
在界面
LayoutManager
target
- 进行布局的容器。
Container
, preferredLayoutSize(java.awt.Container)
, Container.getMinimumSize()
public Dimension preferredLayoutSize(Container target)
target
确定使用此布局管理器的target容器的首选大小。
大多数应用程序不直接调用此方法。 当容器调用其getPreferredSize
方法时调用getPreferredSize
方法。
preferredLayoutSize
在界面
LayoutManager
target
- 进行布局的容器。
Container
, minimumLayoutSize(java.awt.Container)
, Container.getPreferredSize()
public Dimension maximumLayoutSize(Container target)
maximumLayoutSize
在界面
LayoutManager2
target
- 需要布局的组件
Container
, minimumLayoutSize(java.awt.Container)
, preferredLayoutSize(java.awt.Container)
public float getLayoutAlignmentX(Container parent)
getLayoutAlignmentX
在界面
LayoutManager2
public float getLayoutAlignmentY(Container parent)
getLayoutAlignmentY
在界面
LayoutManager2
public void invalidateLayout(Container target)
invalidateLayout
在界面
LayoutManager2
public void layoutContainer(Container target)
这种方法实际上会重塑为了满足这种的约束在指定的容器中的组件BorderLayout
对象。 NORTH
和SOUTH
组件(如果有的话)分别放置在容器的顶部和底部。 然后, WEST
和EAST
组件分别放置在左侧和右侧。 最后, CENTER
对象放置在中间的任何剩余空间中。
大多数应用程序不直接调用此方法。 当容器调用其doLayout
方法时调用doLayout
方法。
layoutContainer
在界面
LayoutManager
target
- 要进行布局的容器。
Container
, Container.doLayout()