- java.lang.Object
-
- java.awt.BorderLayout
-
- All Implemented Interfaces:
-
LayoutManager
,LayoutManager2
,Serializable
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
相同的字符串规范: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
不支持垂直方向。 该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); } }
- 从以下版本开始:
- 1.0
- 另请参见:
-
Container.add(String, Component)
,ComponentOrientation
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 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 描述 BorderLayout()
构建新的边框布局,组件间没有间隙。BorderLayout(int hgap, int vgap)
构造具有组件之间指定间隙的边框布局。
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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()
返回此边框布局状态的字符串表示形式。
-
-
-
字段详细信息
-
NORTH
public static final String NORTH
北面布局约束(容器顶部)。- 另请参见:
- Constant Field Values
-
SOUTH
public static final String SOUTH
南布局约束(容器底部)。- 另请参见:
- Constant Field Values
-
EAST
public static final String EAST
东面布局限制(容器右侧)。- 另请参见:
- Constant Field Values
-
WEST
public static final String WEST
西布局限制(容器左侧)。- 另请参见:
- Constant Field Values
-
CENTER
public static final String CENTER
中心布局约束(容器中间)。- 另请参见:
- Constant Field Values
-
BEFORE_FIRST_LINE
public static final String BEFORE_FIRST_LINE
PAGE_START的同义词。 存在与以前的版本兼容。 PAGE_START是首选。- 从以下版本开始:
- 1.2
- 另请参见:
-
PAGE_START
, Constant Field Values
-
AFTER_LAST_LINE
public static final String AFTER_LAST_LINE
PAGE_END的同义词。 存在与以前的版本兼容。 PAGE_END是首选。- 从以下版本开始:
- 1.2
- 另请参见:
-
PAGE_END
, Constant Field Values
-
BEFORE_LINE_BEGINS
public static final String BEFORE_LINE_BEGINS
LINE_START的同义词。 存在与以前的版本兼容。 LINE_START是首选。- 从以下版本开始:
- 1.2
- 另请参见:
-
LINE_START
, Constant Field Values
-
AFTER_LINE_ENDS
public static final String AFTER_LINE_ENDS
LINE_END的同义词。 存在与以前的版本兼容。 首选LINE_END。- 从以下版本开始:
- 1.2
- 另请参见:
-
LINE_END
, Constant Field Values
-
PAGE_START
public static final String PAGE_START
该组件位于布局内容的第一行之前。 对于西方,从左到右和从上到下的方向,这相当于NORTH。- 从以下版本开始:
- 1.4
- 另请参见:
-
Component.getComponentOrientation()
, Constant Field Values
-
PAGE_END
public static final String PAGE_END
该组件来自布局内容的最后一行。 对于西方,从左到右和从上到下的方向,这相当于SOUTH。- 从以下版本开始:
- 1.4
- 另请参见:
-
Component.getComponentOrientation()
, Constant Field Values
-
LINE_START
public static final String LINE_START
组件在布局的行方向的开始处。 对于西方,从左到右和从上到下的方向,这相当于WEST。- 从以下版本开始:
- 1.4
- 另请参见:
-
Component.getComponentOrientation()
, Constant Field Values
-
LINE_END
public static final String LINE_END
组件在布局的行方向的末尾。 对于西方,从左到右和从上到下的方向,这相当于EAST。- 从以下版本开始:
- 1.4
- 另请参见:
-
Component.getComponentOrientation()
, Constant Field Values
-
-
方法详细信息
-
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
public void addLayoutComponent(Component comp, Object constraints)
使用指定的约束对象将指定的组件添加到布局。 对于边界布局,约束必须是以下常量之一:NORTH
,SOUTH
,EAST
,WEST
,或CENTER
。大多数应用程序不直接调用此方法。 当使用相同参数类型的
Container.add
方法将组件添加到容器时,将调用此方法。- Specified by:
-
addLayoutComponent
在接口LayoutManager2
- 参数
-
comp
- 要添加的组件。 -
constraints
- 指定组件添加到布局的方式和位置的对象。 - 异常
-
IllegalArgumentException
- 如果约束对象不是字符串,或者如果它不是五个指定的常量之一。 - 从以下版本开始:
- 1.1
- 另请参见:
-
Container.add(java.awt.Component, java.lang.Object)
-
addLayoutComponent
@Deprecated public void addLayoutComponent(String name, Component comp)
已过时。 替换为addLayoutComponent(Component, Object)
。说明从接口LayoutManager
复制如果布局管理器使用每个组件字符串,则将组件comp
添加到布局,将其与name
指定的字符串相关联。- Specified by:
-
addLayoutComponent
在接口LayoutManager
- 参数
-
name
- 与组件关联的字符串 -
comp
- 要添加的组件
-
removeLayoutComponent
public void removeLayoutComponent(Component comp)
从此边框布局中删除指定的组件。 当容器调用其remove
或removeAll
方法时,调用removeAll
方法。 大多数应用程序不直接调用此方法。- Specified by:
-
removeLayoutComponent
在接口LayoutManager
- 参数
-
comp
- 要删除的组件。 - 另请参见:
-
Container.remove(java.awt.Component)
,Container.removeAll()
-
getLayoutComponent
public Component getLayoutComponent(Object constraints)
获取使用给定约束添加的组件- 参数
-
constraints
-所需约束的一个CENTER
,NORTH
,SOUTH
,WEST
,EAST
,PAGE_START
,PAGE_END
,LINE_START
,LINE_END
- 结果
-
在给定位置的组件,如果位置为空,
null
- 异常
-
IllegalArgumentException
- 如果约束对象不是九个指定常量之一 - 从以下版本开始:
- 1.5
- 另请参见:
-
addLayoutComponent(java.awt.Component, java.lang.Object)
-
getLayoutComponent
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
- 如果目标参数为空 - 从以下版本开始:
- 1.5
- 另请参见:
-
addLayoutComponent(java.awt.Component, java.lang.Object)
-
getConstraints
public Object getConstraints(Component comp)
获取指定组件的约束- 参数
-
comp
- 要查询的组件 - 结果
- 指定组件的约束,如果组件为空,或者此布局中不存在则为null
- 从以下版本开始:
- 1.5
- 另请参见:
-
addLayoutComponent(java.awt.Component, java.lang.Object)
-
minimumLayoutSize
public Dimension minimumLayoutSize(Container target)
使用此布局管理器确定target
容器的最小大小。当容器调用其
getMinimumSize
方法时,调用getMinimumSize
方法。 大多数应用程序不直接调用此方法。- Specified by:
-
minimumLayoutSize
在接口LayoutManager
- 参数
-
target
- 进行布局的容器。 - 结果
- 布置指定容器的子组件所需的最小尺寸。
- 另请参见:
-
Container
,preferredLayoutSize(java.awt.Container)
,Container.getMinimumSize()
-
preferredLayoutSize
public Dimension preferredLayoutSize(Container target)
根据容器中的组件确定使用此布局管理器的target
容器的首选大小。大多数应用程序不直接调用此方法。 当容器调用其
getPreferredSize
方法时,调用getPreferredSize
方法。- Specified by:
-
preferredLayoutSize
在接口LayoutManager
- 参数
-
target
- 进行布局的容器。 - 结果
- 布置指定容器的子组件的首选尺寸。
- 另请参见:
-
Container
,minimumLayoutSize(java.awt.Container)
,Container.getPreferredSize()
-
maximumLayoutSize
public Dimension maximumLayoutSize(Container target)
给定指定目标容器中的组件的返回布局的最大尺寸。- Specified by:
-
maximumLayoutSize
在接口LayoutManager2
- 参数
-
target
- 需要布局的组件 - 结果
- 容器的最大尺寸
- 另请参见:
-
Container
,minimumLayoutSize(java.awt.Container)
,preferredLayoutSize(java.awt.Container)
-
getLayoutAlignmentX
public float getLayoutAlignmentX(Container parent)
返回沿x轴的对齐方式。 这指定了组件如何相对于其他组件进行对齐。 该值应为0到1之间的数字,其中0表示原点对齐,1对齐最远离原点,0.5为中心等。- Specified by:
-
getLayoutAlignmentX
在接口LayoutManager2
- 参数
-
parent
- 目标容器 - 结果
- x轴对齐偏好
-
getLayoutAlignmentY
public float getLayoutAlignmentY(Container parent)
返回沿着y轴的对齐。 这指定了组件如何相对于其他组件进行对齐。 该值应为0到1之间的数字,其中0表示原点对齐,1对齐最远离原点,0.5为中心等。- Specified by:
-
getLayoutAlignmentY
在接口LayoutManager2
- 参数
-
parent
- 目标容器 - 结果
- y轴对齐偏好
-
invalidateLayout
public void invalidateLayout(Container target)
使布局无效,指示如果布局管理器已缓存信息,则应将其丢弃。- Specified by:
-
invalidateLayout
在接口LayoutManager2
- 参数
-
target
- 目标容器
-
layoutContainer
public void layoutContainer(Container target)
使用此边框布局来填充容器参数。该方法实际重新形成指定容器中的组件,以满足此
BorderLayout
对象的约束。NORTH
和SOUTH
组件(如果有的话)分别放置在容器的顶部和底部。 然后分别将WEST
和EAST
组件放置在左侧和右侧。 最后,CENTER
对象放置在中间的任何剩余空间中。大多数应用程序不直接调用此方法。 当容器调用其
doLayout
方法时,调用doLayout
方法。- Specified by:
-
layoutContainer
在接口LayoutManager
- 参数
-
target
- 要进行布局的容器。 - 另请参见:
-
Container
,Container.doLayout()
-
-