- java.lang.Object
-
- java.awt.BorderLayout
-
- 实现的所有接口
-
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不支持垂直方向。 容器的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 StringAFTER_LAST_LINEPAGE_END的同义词。static StringAFTER_LINE_ENDSLINE_END的同义词。static StringBEFORE_FIRST_LINEPAGE_START的同义词。static StringBEFORE_LINE_BEGINSLINE_START的同义词。static StringCENTER中心布局约束(容器中间)。static StringEAST东部布局约束(容器的右侧)。static StringLINE_END组件位于布局的行方向的末尾。static StringLINE_START组件位于布局的行方向的开头。static StringNORTH北布局约束(容器顶部)。static StringPAGE_END该组件位于布局内容的最后一行之后。static StringPAGE_START该组件位于布局内容的第一行之前。static StringSOUTH南布局约束(容器底部)。static StringWEST西部布局约束(容器的左侧)。
-
构造方法摘要
构造方法 构造器 描述 BorderLayout()构造一个新的边框布局,组件之间没有间隙。BorderLayout(int hgap, int vgap)构造具有组件之间指定间隙的边框布局。
-
方法摘要
所有方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 voidaddLayoutComponent(Component comp, Object constraints)使用指定的约束对象将指定的组件添加到布局中。voidaddLayoutComponent(String name, Component comp)已过时。由addLayoutComponent(Component, Object)取代。ObjectgetConstraints(Component comp)获取指定组件的约束intgetHgap()返回组件之间的水平间隙。floatgetLayoutAlignmentX(Container parent)返回沿x轴的对齐方式。floatgetLayoutAlignmentY(Container parent)返回沿y轴的对齐方式。ComponentgetLayoutComponent(Container target, Object constraints)返回基于目标Container的组件方向对应于给定约束位置的组件。ComponentgetLayoutComponent(Object constraints)获取使用给定约束添加的组件intgetVgap()返回组件之间的垂直间隙。voidinvalidateLayout(Container target)使布局无效,表明如果布局管理器缓存了信息,则应将其丢弃。voidlayoutContainer(Container target)使用此边框布局布置容器参数。DimensionmaximumLayoutSize(Container target)给定指定目标容器中的组件,返回此布局的最大尺寸。DimensionminimumLayoutSize(Container target)使用此布局管理器确定target容器的最小大小。DimensionpreferredLayoutSize(Container target)根据容器中的组件,使用此布局管理器确定target容器的首选大小。voidremoveLayoutComponent(Component comp)从此边框布局中删除指定的组件。voidsetHgap(int hgap)设置组件之间的水平间隙。voidsetVgap(int vgap)设置组件之间的垂直间隙。StringtoString()返回此边框布局状态的字符串表示形式。
-
-
-
字段详细信息
-
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
@Deprecated public 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()
-
-