Module java.desktop
Package javax.swing

Class Box

所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible

@JavaBean(defaultProperty="accessibleContext") public class Box extends JComponent implements Accessible
一个使用 BoxLayout 对象作为其布局管理器的轻量级容器。Box 提供了几个对于使用 BoxLayout 的容器有用的类方法 -- 即使是非 Box 容器也可以使用。

Box 类可以创建几种影响布局的不可见组件:glue、struts 和 rigid areas。如果您的 Box 包含的所有组件都具有固定大小,您可能希望使用一个 glue 组件(通过 createGlue 返回)来控制组件的位置。如果需要在两个组件之间固定的空间量,请尝试使用 strut(createHorizontalStrutcreateVerticalStrut)。如果需要一个始终占据相同空间量的不可见组件,请通过调用 createRigidArea 获取。

如果您正在实现一个 BoxLayout,您可以在如何使用 BoxLayout中找到更多信息和示例,这是《Java 教程》中的一个部分。

警告: 该类的序列化对象将不兼容未来的 Swing 版本。当前的序列化支持适用于短期存储或在运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已将对所有 JavaBeans 的长期存储支持添加到 java.beans 包中。请参阅 XMLEncoder

自版本:
1.2
参见:
  • Constructor Details

  • Method Details

    • createHorizontalBox

      public static Box createHorizontalBox()
      创建一个从左到右显示其组件的 Box。如果您希望一个尊重组件方向的 Box,您应该使用构造函数创建 Box 并传入 BoxLayout.LINE_AXIS,例如:
         Box lineBox = new Box(BoxLayout.LINE_AXIS);
       
      返回:
      该框
    • createVerticalBox

      public static Box createVerticalBox()
      创建一个从上到下显示其组件的 Box。如果您希望一个尊重组件方向的 Box,您应该使用构造函数创建 Box 并传入 BoxLayout.PAGE_AXIS,例如:
         Box lineBox = new Box(BoxLayout.PAGE_AXIS);
       
      返回:
      该框
    • createRigidArea

      public static Component createRigidArea(Dimension d)
      创建一个始终具有指定大小的不可见组件。
      参数:
      d - 不可见组件的尺寸
      返回:
      该组件
      参见:
    • createHorizontalStrut

      public static Component createHorizontalStrut(int width)
      创建一个不可见的、固定宽度的组件。在水平框中,您通常使用此方法来强制两个组件之间有一定的空间量。在垂直框中,您可能使用此方法来强制框至少具有指定的宽度。除非有多余的空间,否则不可见组件没有高度,此时它将占用可用空间的份额,就像任何没有最大高度的其他组件一样。
      参数:
      width - 不可见组件的宽度,像素数 >= 0
      返回:
      该组件
      参见:
    • createVerticalStrut

      public static Component createVerticalStrut(int height)
      创建一个不可见的、固定高度的组件。在垂直框中,您通常使用此方法来强制两个组件之间有一定的空间量。在水平框中,您可能使用此方法来强制框至少具有指定的高度。除非有多余的空间,否则不可见组件没有宽度,此时它将占用可用空间的份额,就像任何没有最大宽度的其他组件一样。
      参数:
      height - 不可见组件的高度,像素数 >= 0
      返回:
      该组件
      参见:
    • createGlue

      public static Component createGlue()
      创建一个不可见的“glue”组件,在具有最大宽度(对于水平框)或高度(对于垂直框)的可见组件的 Box 中可能很有用。您可以将 glue 组件视为一种粘性物质,它会根据需要扩展以填充其相邻组件之间的空间。

      例如,假设您有一个水平框,其中包含两个固定大小的组件。如果框获得额外空间,固定大小的组件不会变大,那么额外空间去哪里了?没有 glue,额外空间会出现在第二个组件的右侧。如果在固定大小的组件之间放置 glue,则额外空间会出现在那里。如果在第一个固定大小的组件之前需要 glue,额外空间会出现在那里,并且固定大小的组件会被推到框的右边缘。如果在第一个固定大小的组件之前和第二个固定大小的组件之后放置 glue,则固定大小的组件将居中在框中。

      要使用 glue,请调用 Box.createGlue 并将返回的组件添加到容器中。glue 组件没有最小或首选大小,因此除非有多余的空间,否则它不占用空间。如果有多余的空间,则 glue 组件将占用可用的水平或垂直空间份额,就像任何没有最大宽度或高度的其他组件一样。

      返回:
      该组件
    • createHorizontalGlue

      public static Component createHorizontalGlue()
      创建一个水平 glue 组件。
      返回:
      该组件
    • createVerticalGlue

      public static Component createVerticalGlue()
      创建一个垂直 glue 组件。
      返回:
      该组件
    • setLayout

      public void setLayout(LayoutManager l)
      抛出 AWTError,因为 Box 只能使用 BoxLayout。
      覆盖:
      setLayout 在类 Container
      参数:
      l - 要使用的布局管理器
      参见:
    • paintComponent

      protected void paintComponent(Graphics g)
      绘制此 Box。如果此 Box 具有 UI,则此方法调用超类的实现,否则如果此 Box 是不透明的,则使用背景填充 Graphics
      覆盖:
      paintComponent 在类 JComponent
      参数:
      g - 要绘制的 Graphics
      抛出:
      NullPointerException - 如果 g 为 null
      自版本:
      1.6
      参见:
    • getAccessibleContext

      @BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
      获取与此 Box 相关联的 AccessibleContext。对于 Box,AccessibleContext 采用 AccessibleBox 的形式。如果需要,将创建一个新的 AccessibleAWTBox 实例。
      指定者:
      getAccessibleContext 在接口 Accessible
      覆盖:
      getAccessibleContext 在类 Component
      返回:
      作为此 Box 的 AccessibleContext 的 AccessibleBox