模块 java.desktop

类 Box

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

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

Box 类可以创建几种影响布局的不可见组件:胶水、支柱和刚性区域。如果您的 Box 包含的所有组件都具有固定大小,您可能需要使用胶水组件(由 createGlue 返回)来控制组件的位置。如果您需要两个组件之间的固定空间量,请尝试使用支柱(createHorizontalStrutcreateVerticalStrut)。如果您需要一个始终占用相同空间量的不可见组件,请通过调用 createRigidArea 来获取它。

如果您正在实施 BoxLayout,您可以在 如何使用BoxLayout 中找到更多信息和示例,这是 The Java Tutorial. 中的一个部分

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

自从:
1.2
参见:
  • 构造方法详细信息

  • 方法详情

    • 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()
      创建一个不可见的“胶水”组件,该组件在可见组件具有最大宽度(对于水平框)或高度(对于垂直框)的 Box 中很有用。您可以将胶水组件视为一种粘性物质,它会根据需要膨胀以填充其相邻组件之间的空间。

      例如,假设您有一个包含两个固定大小组件的水平框。如果盒子得到了额外的空间,固定大小的组件不会变大,那么额外的空间去哪儿了?如果没有胶水,额外的空间将位于第二个组件的右侧。如果您在固定大小的组件之间放置胶水,那么额外的空间就会放在那里。如果你在第一个固定大小的组件之前放置胶水,额外的空间就会放在那里,并且固定大小的组件会被推到盒子的右边缘。如果您在第一个固定尺寸组件之前和第二个固定尺寸组件之后放置胶水,则固定尺寸组件将在框内居中。

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

      返回:
      组件
    • createHorizontalGlue

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

      public static Component  createVerticalGlue()
      创建垂直粘合组件。
      返回:
      组件
    • setLayout

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

      protected void paintComponent(Graphics  g)
      画这个 Box 。如果这个 Box 有一个 UI,这个方法调用 super 的实现,否则如果这个 Box 是不透明的,那么 Graphics 使用背景填充。
      重写:
      paintComponent 在类 JComponent
      参数:
      g - 要绘制的 Graphics
      抛出:
      NullPointerException - 如果 g 为空
      自从:
      1.6
      参见:
    • getAccessibleContext

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