- 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 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西布局限制(容器左侧)。
-
构造方法摘要
构造方法 Constructor 描述 BorderLayout()构建新的边框布局,组件间没有间隙。BorderLayout(int hgap, int vgap)构造具有组件之间指定间隙的边框布局。
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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()返回此边框布局状态的字符串表示形式。
-
-
-
字段详细信息
-
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()
-
-