- java.lang.Object
-
- java.awt.BorderLayout
-
- 实现的所有接口
-
LayoutManager
,LayoutManager2
,Serializable
public class BorderLayoutextends Objectimplements 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
不支持垂直方向。 容器的ComponentOrientation
上的isVertical
设置未得到遵守。组件根据其优选尺寸和容器尺寸的限制来布置。
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); } }
- 从以下版本开始:
- 1.0
- 另请参见:
-
Container.add(String, Component)
,ComponentOrientation
, Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 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()
返回此边框布局状态的字符串表示形式。
-
-
-
字段详细信息
-
BEFORE_FIRST_LINE
public static final String BEFORE_FIRST_LINE
PAGE_START的同义词。 存在与先前版本的兼容性。 PAGE_START是首选。- 从以下版本开始:
- 1.2
- 另请参见:
-
PAGE_START
, 常数字段值
-
AFTER_LAST_LINE
public static final String AFTER_LAST_LINE
PAGE_END的同义词。 存在与先前版本的兼容性。 PAGE_END是首选。
-
BEFORE_LINE_BEGINS
public static final String BEFORE_LINE_BEGINS
LINE_START的同义词。 存在与先前版本的兼容性。 LINE_START是首选。- 从以下版本开始:
- 1.2
- 另请参见:
-
LINE_START
, 常数字段值
-
AFTER_LINE_ENDS
public static final String AFTER_LINE_ENDS
LINE_END的同义词。 存在与先前版本的兼容性。 LINE_END是首选。
-
PAGE_START
public static final String PAGE_START
该组件位于布局内容的第一行之前。 对于西方,从左到右和从上到下的方向,这相当于NORTH。- 从以下版本开始:
- 1.4
- 另请参见:
-
Component.getComponentOrientation()
, 常数字段值
-
PAGE_END
public static final String PAGE_END
该组件位于布局内容的最后一行之后。 对于西方,从左到右和从上到下的方向,这相当于南方。- 从以下版本开始:
- 1.4
- 另请参见:
-
Component.getComponentOrientation()
, 常数字段值
-
LINE_START
public static final String LINE_START
组件位于布局的行方向的开头。 对于西方,从左到右和从上到下的方向,这相当于WEST。- 从以下版本开始:
- 1.4
- 另请参见:
-
Component.getComponentOrientation()
, 常数字段值
-
LINE_END
public static final String LINE_END
组件位于布局的行方向的末尾。 对于西方,从左到右和从上到下的方向,这相当于EAST。- 从以下版本开始:
- 1.4
- 另请参见:
-
Component.getComponentOrientation()
, 常数字段值
-
-
方法详细信息
-
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
@Deprecatedpublic void addLayoutComponent(String name, Component comp)
Deprecated.replaced byaddLayoutComponent(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
- 如果target参数为null - 从以下版本开始:
- 1.5
- 另请参见:
-
addLayoutComponent(java.awt.Component, java.lang.Object)
-
getConstraints
public Object getConstraints(Component comp)
获取指定组件的约束- 参数
-
comp
- 要查询的组件 - 结果
- 指定组件的约束,如果component为null或此布局中不存在,则返回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
指定容器中的组件,以满足此BorderLayout
对象的约束。NORTH
和SOUTH
组件(如果有)分别放置在容器的顶部和底部。 然后将WEST
和EAST
组件分别放置在左侧和右侧。 最后,CENTER
对象放置在中间的任何剩余空间中。大多数应用程序不直接调用此方法。 当容器调用其
doLayout
方法时,将调用doLayout
方法。- Specified by:
-
layoutContainer
在界面LayoutManager
- 参数
-
target
- 要在其中执行布局的容器。 - 另请参见:
-
Container
,Container.doLayout()
-
-