- 所有已实现的接口:
-
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
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddLayoutComponent(Component comp, Object constraints) 该类不使用。voidaddLayoutComponent(String name, Component comp) 该类不使用。final intgetAxis()返回用于布局组件的轴。floatgetLayoutAlignmentX(Container target) 返回容器沿X轴的对齐。floatgetLayoutAlignmentY(Container target) 返回容器沿Y轴的对齐。final Container返回使用此布局管理器的容器。voidinvalidateLayout(Container target) 表示子项已更改其与布局相关的信息,因此应刷新任何缓存的计算。voidlayoutContainer(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构造函数的容器
-