- 所有已实现的接口:
-
LayoutManager
,LayoutManager2
,Serializable
- 直接已知的子类:
-
DefaultMenuLayout
示例:
嵌套多个具有不同水平和垂直组合的面板会产生类似于GridBagLayout的效果,但不会增加复杂性。该图显示水平排列的两个面板,每个面板包含垂直排列的3个组件。
BoxLayout管理器使用一个指定要执行的布局类型的轴参数进行构造。有四种选择:
X_AXIS
- 从左到右水平布局组件。
Y_AXIS
- 从上到下垂直布局组件。
LINE_AXIS
- 根据容器的ComponentOrientation
属性,组件的布局方式类似于文本中的单词布局。如果容器的ComponentOrientation
是水平的,则组件水平布局,否则垂直布局。对于水平方向,如果容器的ComponentOrientation
是从左到右,则组件从左到右布局,否则从右到左布局。对于垂直方向,组件始终从上到下布局。
PAGE_AXIS
- 根据容器的ComponentOrientation
属性,组件的布局方式类似于页面上文本行的布局。如果容器的ComponentOrientation
是水平的,则组件垂直布局,否则水平布局。对于水平方向,如果容器的ComponentOrientation
是从左到右,则组件从左到右布局,否则从右到左布局。对于垂直方向,组件始终从上到下布局。
对于所有方向,组件按照它们添加到容器中的顺序排列。
BoxLayout尝试以组件的首选宽度(水平布局)或高度(垂直布局)排列组件。对于水平布局,如果不是所有组件都具有相同的高度,BoxLayout会尝试使所有组件的高度与最高组件一样高。如果对于特定组件无法实现这一点,那么BoxLayout会根据组件的Y对齐方式垂直对齐该组件。默认情况下,组件的Y对齐方式为0.5,这意味着组件的垂直中心应该与其他具有0.5 Y对齐方式的组件的垂直中心具有相同的Y坐标。
类似地,对于垂直布局,BoxLayout尝试使列中的所有组件与最宽的组件一样宽。如果失败,它会根据它们的X对齐方式水平对齐它们。对于PAGE_AXIS
布局,水平对齐是基于组件的前沿边缘完成的。换句话说,X对齐值为0.0表示组件的左边缘(如果容器的ComponentOrientation
是从左到右)或者表示组件的右边缘(否则)。
许多程序不直接使用BoxLayout,而是使用Box类。Box类是一个使用BoxLayout的轻量级容器。它还提供了方便的方法来帮助您很好地使用BoxLayout。向多个嵌套框添加组件是获得所需布局的强大方法。
有关更多信息和示例,请参阅如何使用BoxLayout,这是The Java Tutorial中的一节。
警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4版本开始,已将所有JavaBeans的长期存储支持添加到java.beans
包中。请参阅XMLEncoder
。
- 自:
- 1.2
- 参见:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addLayoutComponent
(Component comp, Object constraints) 该类不使用。void
addLayoutComponent
(String name, Component comp) 该类不使用。final int
getAxis()
返回用于布局组件的轴。float
getLayoutAlignmentX
(Container target) 返回容器沿X轴的对齐。float
getLayoutAlignmentY
(Container target) 返回容器沿Y轴的对齐。final Container
返回使用此布局管理器的容器。void
invalidateLayout
(Container target) 表示子项已更改其与布局相关的信息,因此应刷新任何缓存的计算。void
layoutContainer
(Container target) 当指定容器需要布局时,由AWT调用。maximumLayoutSize
(Container target) 返回目标容器可以用来布局其包含的组件的最大尺寸。minimumLayoutSize
(Container target) 返回布局指定目标容器中包含的组件所需的最小尺寸。preferredLayoutSize
(Container target) 返回此布局的首选尺寸,给定指定目标容器中的组件。void
该类不使用。
-
Field Details
-
X_AXIS
public static final int X_AXIS指定组件应从左到右布局。- 参见:
-
Y_AXIS
public static final int Y_AXIS指定组件应从上到下布局。- 参见:
-
LINE_AXIS
public static final int LINE_AXIS指定组件应按照目标容器的ComponentOrientation
属性确定的文本行方向进行布局。- 参见:
-
PAGE_AXIS
public static final int PAGE_AXIS指定组件应按照目标容器的ComponentOrientation
属性确定的页面上文本流动方向进行布局。- 参见:
-
-
Constructor Details
-
BoxLayout
创建一个布局管理器,将沿着给定轴布局组件。- 参数:
-
target
- 需要布局的容器 -
axis
- 沿其布局组件的轴。可以是BoxLayout.X_AXIS, BoxLayout.Y_AXIS, BoxLayout.LINE_AXIS
或BoxLayout.PAGE_AXIS
之一 - 抛出:
-
AWTError
- 如果axis
的值无效
-
-
Method Details
-
getTarget
返回使用此布局管理器的容器。- 返回:
- 使用此布局管理器的容器
- 自:
- 1.6
-
getAxis
public final int getAxis()返回用于布局组件的轴。返回以下之一:BoxLayout.X_AXIS, BoxLayout.Y_AXIS, BoxLayout.LINE_AXIS
或BoxLayout.PAGE_AXIS
- 返回:
- 用于布局组件的轴
- 自:
- 1.6
-
invalidateLayout
表示子项已更改其与布局相关的信息,因此应刷新任何缓存的计算。当容器上调用invalidate方法时,AWT会调用此方法。由于invalidate方法可能异步调用到事件线程之外,因此此方法可能会异步调用。
- 指定者:
-
invalidateLayout
在接口LayoutManager2
中 - 参数:
-
target
- 受影响的容器 - 抛出:
-
AWTError
- 如果目标不是传递给BoxLayout构造函数的容器
-
addLayoutComponent
该类不使用。- 指定者:
-
addLayoutComponent
在接口LayoutManager
中 - 参数:
-
name
- 组件的名称 -
comp
- 组件
-
removeLayoutComponent
该类不使用。- 指定者:
-
removeLayoutComponent
在接口LayoutManager
中 - 参数:
-
comp
- 组件
-
addLayoutComponent
该类不使用。- 指定者:
-
addLayoutComponent
在接口LayoutManager2
中 - 参数:
-
comp
- 组件 -
constraints
- 约束条件
-
preferredLayoutSize
返回指定目标容器中组件的首选尺寸。- 指定者:
-
preferredLayoutSize
在接口LayoutManager
中 - 参数:
-
target
- 需要进行布局的容器 - 返回:
- 尺寸 >= 0 && <= Integer.MAX_VALUE
- 抛出:
-
AWTError
- 如果目标不是传递给BoxLayout构造函数的容器 - 参见:
-
minimumLayoutSize
返回指定目标容器中包含的组件进行布局所需的最小尺寸。- 指定者:
-
minimumLayoutSize
在接口LayoutManager
中 - 参数:
-
target
- 需要进行布局的容器 - 返回:
- 尺寸 >= 0 && <= Integer.MAX_VALUE
- 抛出:
-
AWTError
- 如果目标不是传递给BoxLayout构造函数的容器 - 参见:
-
maximumLayoutSize
返回目标容器可以使用的最大尺寸,以便对其包含的组件进行布局。- 指定者:
-
maximumLayoutSize
在接口LayoutManager2
中 - 参数:
-
target
- 需要进行布局的容器 - 返回:
- 尺寸 >= 0 && <= Integer.MAX_VALUE
- 抛出:
-
AWTError
- 如果目标不是传递给BoxLayout构造函数的容器 - 参见:
-
getLayoutAlignmentX
返回容器沿X轴的对齐方式。如果箱式布局是水平的,则返回默认对齐方式。否则,将返回沿Y轴放置子组件所需的对齐方式。- 指定者:
-
getLayoutAlignmentX
在接口LayoutManager2
中 - 参数:
-
target
- 容器 - 返回:
- 对齐方式 >= 0.0f && <= 1.0f
- 抛出:
-
AWTError
- 如果目标不是传递给BoxLayout构造函数的容器
-
getLayoutAlignmentY
返回容器沿Y轴的对齐方式。如果箱式布局是垂直的,则返回默认对齐方式。否则,将返回沿X轴放置子组件所需的对齐方式。- 指定者:
-
getLayoutAlignmentY
在接口LayoutManager2
中 - 参数:
-
target
- 容器 - 返回:
- 对齐方式 >= 0.0f && <= 1.0f
- 抛出:
-
AWTError
- 如果目标不是传递给BoxLayout构造函数的容器
-
layoutContainer
当指定的容器需要进行布局时,由AWT调用。- 指定者:
-
layoutContainer
在接口LayoutManager
中 - 参数:
-
target
- 要进行布局的容器 - 抛出:
-
AWTError
- 如果目标不是传递给BoxLayout构造函数的容器
-