所有类


javax.swing
类 BoxLayout

java.lang.Object
  继承者 javax.swing.BoxLayout
所有已实现的接口:
LayoutManager, LayoutManager2, Serializable
直接已知子类:
DefaultMenuLayout

public class BoxLayout
   
   
   
   
   
extends Object
implements LayoutManager2, Serializable

允许纵向或横向布置多个组件的布局管理器。这些组件将不包装,因此举例来说,纵向排列的组件在重新调整框架的大小时仍然被纵向排列。

以下文本是对此图像的描述。

用横向组件和纵向组件不同组合的嵌套多面板的作用类似于 GridBagLayout,但没那么复杂。该图显示了两个横向排列的面板,每个面板都包含 3 个纵向排列的组件。

BoxLayout 管理器是用 axis 参数构造的,该参数指定了将进行的布局类型。有四个选择:

X_AXIS:从左到右横向布置组件。
Y_AXIS:从上到下纵向布置组件。
LINE_AXIS:根据容器的 ComponentOrientation 属性,按照文字在一行中的排列方式布置组件。如果容器的 ComponentOrientation 表示横向,则将组件横向放置,否则将它们纵向放置。对于横向方向,如果容器的 ComponentOrientation 表示从左到右,则组件被从左到右放置,否则将它们从右到左放置。对于纵向方向,组件总是从上到下放置。
PAGE_AXIS:根据容器的 ComponentOrientation 属性,按照文本行在一页中的排列方式布置组件。如果容器的 ComponentOrientation 表示横向,则将组件纵向放置,否则将它们横向放置。对于横向方向,如果容器的 ComponentOrientation 表示从左到右,则组件被从左到右放置,否则将它们从右到左放置。对于纵向方向,组件总是从上向下放置。

对于所有方向,组件按照将它们添加到容器中的顺序排列。

BoxLayout 试图按照组件的首选宽度(对于横向布局)或首选高度(对于纵向布局)来排列它们。对于横向布局,如果并不是所有的组件都具有相同的高度,则 BoxLayout 会试图让所有组件都具有最高组件的高度。如果对于某一特定组件而言这是不可能的,则 BoxLayout 会根据该组件的 Y 调整值对它进行纵向调整。默认情况下,组件的 Y 调整值为 0.5,这意味着组件的纵向中心应该与其他 Y 调整值为 0.5 的组件的纵向中心具有相同 Y 坐标。

同样,对于纵向布局,BoxLayout 试图让列中的所有组件具有最宽组件的宽度。如果这样做失败,则 BoxLayout 会根据这些组件的 X 调整值对它进行横向调整。对于 PAGE_AXIS 布局,基于组件的开始边横向对齐。换句话说,如果容器的 ComponentOrientation 表示从左到右,则 X 调整值为 0.0 意味着组件的左边缘,否则它意味着组件的右边缘。

许多程序使用 Box 类,而不是直接使用 BoxLayout。Box 类是使用 BoxLayout 的轻量级容器。它还提供了一些帮助您很好地使用 BoxLayout 的便利方法。要获得您想要的排列,将组件添加到多个嵌套的 box 中是一种功能强大的方法。

有关更多信息和示例,请参阅《The Java Tutorial》中的 How to Use BoxLayout 一节。

警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder

另请参见:
Box, ComponentOrientation, JComponent.getAlignmentX(), JComponent.getAlignmentY()

字段摘要
static int LINE_AXIS
          指定应该根据目标容器的 ComponentOrientation 属性确定的文本行方向放置组件。
static int PAGE_AXIS
          指定应该根据目标容器的 ComponentOrientation 属性确定的文本行在页面中的流向来放置组件。
static int X_AXIS
          指定组件应该从左到右放置。
static int Y_AXIS
          指定组件应该从上到下放置。
 
构造方法摘要
BoxLayout(Container target, int axis)
          创建一个将沿给定轴放置组件的布局管理器。
 
方法摘要
 void addLayoutComponent(Component comp, Object constraints)
          此类不使用。
 void addLayoutComponent(String name, Component comp)
          此类不使用。
 float getLayoutAlignmentX(Container target)
          返回容器沿 X 轴的对齐方式。
 float getLayoutAlignmentY(Container target)
          返回容器沿 Y 轴的对齐方式。
 void invalidateLayout(Container target)
          指示一个子容器已经更改其布局相关信息,因此应该刷新所有已缓存的计算结果。
 void layoutContainer(Container target)
          在需要布置指定容器时,由 AWT 调用 。
 Dimension maximumLayoutSize(Container target)
          返回目标容器布置其所包含的组件时可使用的最大尺寸。
 Dimension minimumLayoutSize(Container target)
          返回布置包含在指定目标容器中的组件所需的最小尺寸。
 Dimension preferredLayoutSize(Container target)
          在给出指定目标容器中的组件的前提下,返回此布局的首选尺寸。
 void removeLayoutComponent(Component comp)
          此类不使用。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

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 属性确定的文本行在页面中的流向来放置组件。

另请参见:
常量字段值
构造方法详细信息

BoxLayout

public BoxLayout(Container target,
                 int axis)
创建一个将沿给定轴放置组件的布局管理器。

参数:
target - 需要布置的容器
axis - 布置组件时使用的轴。它可以是以下值之一:BoxLayout.X_AXISBoxLayout.Y_AXISBoxLayout.LINE_AXISBoxLayout.PAGE_AXIS
抛出:
AWTError - 如果 axis 的值无效
方法详细信息

invalidateLayout

public void invalidateLayout(Container target)
指示一个子容器已经更改其布局相关信息,因此应该刷新所有已缓存的计算结果。

在 Container 上调用 invalidate 方法时,由 AWT 调用此方法。因为可以对事件线程异步调用 invalidate 方法,所以可以异步调用此方法。

指定者:
接口 LayoutManager2 中的 invalidateLayout
参数:
target - 受影响的容器
抛出:
AWTError - 如果目标容器不是指定给 BoxLayout 构造方法的容器

addLayoutComponent

public void addLayoutComponent(String name,
                               Component comp)
此类不使用。

指定者:
接口 LayoutManager 中的 addLayoutComponent
参数:
name - 组件的名称
comp - 组件

removeLayoutComponent

public void removeLayoutComponent(Component comp)
此类不使用。

指定者:
接口 LayoutManager 中的 removeLayoutComponent
参数:
comp - 组件

addLayoutComponent

public void addLayoutComponent(Component comp,
                               Object constraints)
此类不使用。

指定者:
接口 LayoutManager2 中的 addLayoutComponent
参数:
comp - 组件
constraints - 约束

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部