Module java.desktop
Package javax.swing

Class SizeRequirements

java.lang.Object
javax.swing.SizeRequirements
所有已实现的接口:
Serializable

public class SizeRequirements extends Object implements Serializable
为布局管理器的方便,计算关于组件的大小和位置的信息。所有大小和位置计算方法都是类方法,接受SizeRequirements数组作为参数。SizeRequirements类支持两种布局类型:
tiled
组件被放置在一起,从坐标0(最左侧或最顶部位置)开始,或者从表示分配跨度结束的坐标(最右侧或最底部位置)开始。
aligned
组件根据每个组件的X或Y对齐值进行对齐。

每个SizeRequirements对象包含关于单个组件或一组组件的宽度(和X对齐)或高度(和Y对齐)的信息:

minimum
组件或组件组的最小合理宽度/高度,以像素为单位。
preferred
组件或组件组的自然宽度/高度,以像素为单位。
maximum
组件或组件组的最大合理宽度/高度,以像素为单位。
alignment
组件或组件组的X/Y对齐。

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

自 JDK 版本:
1.2
参见:
  • Field Details

    • minimum

      public int minimum
      所需的最小尺寸。对于组件comp,这应该等于comp.getMinimumSize().widthcomp.getMinimumSize().height
    • preferred

      public int preferred
      首选(自然)尺寸。对于组件comp,这应该等于comp.getPreferredSize().widthcomp.getPreferredSize().height
    • maximum

      public int maximum
      允许的最大尺寸。对于组件comp,这应该等于comp.getMaximumSize().widthcomp.getMaximumSize().height
    • alignment

      public float alignment
      对齐,指定为介于0.0和1.0之间(包括0.0和1.0)的值。要指定居中,对齐值应为0.5。
  • Constructor Details

    • SizeRequirements

      public SizeRequirements()
      创建一个SizeRequirements对象,其中最小、首选和最大尺寸均设置为零,对齐值为0.5(居中)。
    • SizeRequirements

      public SizeRequirements(int min, int pref, int max, float a)
      创建一个SizeRequirements对象,其中指定了最小、首选和最大尺寸以及指定的对齐。
      参数:
      min - 最小尺寸 >= 0
      pref - 首选尺寸 >= 0
      max - 最大尺寸 >= 0
      a - 对齐 >= 0.0f && <= 1.0f
  • Method Details

    • toString

      public String toString()
      返回描述最小、首选和最大尺寸要求以及对齐方式的字符串。
      覆盖:
      toString 在类 Object
      返回:
      字符串
    • getTiledSizeRequirements

      public static SizeRequirements getTiledSizeRequirements(SizeRequirements[] children)
      确定放置一组组件端对端所需的总空间。集合中每个组件的需求由传入的SizeRequirements数组中的条目表示。返回的SizeRequirements对象具有对齐值为0.5(居中)。空间需求永远不会超过Integer.MAX_VALUE。
      参数:
      children - 一组组件的空间需求。向量可能长度为零,这将导致返回一个默认的SizeRequirements对象实例。
      返回:
      总空间需求。
    • getAlignedSizeRequirements

      public static SizeRequirements getAlignedSizeRequirements(SizeRequirements[] children)
      确定对齐一组组件所需的总空间。集合中每个组件的需求由传入的SizeRequirements数组中的条目表示。所需的总空间永远不会超过Integer.MAX_VALUE。
      参数:
      children - 子需求集。如果长度为零,则返回结果将是SizeRequirements的默认实例。
      返回:
      总空间需求。
    • calculateTiledPositions

      public static void calculateTiledPositions(int allocated, SizeRequirements total, SizeRequirements[] children, int[] offsets, int[] spans)
      创建一组偏移/跨度对,表示如何将一组组件端对端布置。此方法要求您指定要分配的总空间量,要放置的每个组件的尺寸需求(指定为SizeRequirements数组),以及组件集的总尺寸需求。您可以通过调用getTiledSizeRequirements方法获取总尺寸需求。组件将在正向方向上平铺,偏移量从0开始增加。
      参数:
      allocated - 要分配的总跨度 >= 0。
      total - 子请求的总和。此参数是可选的,可以为null。
      children - 每个组件的尺寸需求。
      offsets - 每个子组件的从0开始的偏移量,其中分配了跨度(确定跨度的放置)。
      spans - 为每个子组件分配的跨度,以使总目标跨度。
    • calculateTiledPositions

      public static void calculateTiledPositions(int allocated, SizeRequirements total, SizeRequirements[] children, int[] offsets, int[] spans, boolean forward)
      创建一组偏移/跨度对,表示如何将一组组件端对端布置。此方法要求您指定要分配的总空间量,要放置的每个组件的尺寸需求(指定为SizeRequirements数组),以及组件集的总尺寸需求。您可以通过调用getTiledSizeRequirements方法获取总尺寸需求。此方法还需要一个标志,指示组件是否应在正向方向(偏移量从0开始增加)或反向方向(偏移量从分配空间的末端减少)平铺。正向方向表示从左到右或从上到下平铺的组件。反向方向表示从右到左或从下到上平铺的组件。
      参数:
      allocated - 要分配的总跨度 >= 0。
      total - 子请求的总和。此参数是可选的,可以为null。
      children - 每个组件的尺寸需求。
      offsets - 每个子组件的从0开始的偏移量,其中分配了跨度(确定跨度的放置)。
      spans - 为每个子组件分配的跨度,以使总目标跨度。
      forward - 如果为true,则偏移量从0开始增加,如果为false,则偏移量从分配空间的末端减少。
      自 JDK 版本:
      1.4
    • calculateAlignedPositions

      public static void calculateAlignedPositions(int allocated, SizeRequirements total, SizeRequirements[] children, int[] offsets, int[] spans)
      创建一堆偏移/跨度对,指定如何使用指定的对齐方式布置一组组件。生成的跨度分配将重叠,每个跨度都尽可能适合给定的总分配。此方法要求您指定要分配的总空间量,要放置的每个组件的尺寸需求(指定为SizeRequirements数组),以及组件集的总尺寸需求(实际上只使用对齐字段)。您可以通过调用getAlignedSizeRequirements方法获取总尺寸需求。将使用正常对齐,对齐值为0.0f表示组件的左/顶部边缘。
      参数:
      allocated - 要分配的总跨度 >= 0。
      total - 子请求的总和。
      children - 每个组件的尺寸需求。
      offsets - 每个子组件的从0开始的偏移量,其中分配了跨度(确定跨度的放置)。
      spans - 为每个子组件分配的跨度,以使总目标跨度。
    • calculateAlignedPositions

      public static void calculateAlignedPositions(int allocated, SizeRequirements total, SizeRequirements[] children, int[] offsets, int[] spans, boolean normal)
      创建一组偏移/跨度对,指定如何使用指定的对齐方式布置一组组件。生成的跨度分配将重叠,每个跨度都尽可能适合给定的总分配。此方法要求您指定要分配的总空间量,要放置的每个组件的大小要求(指定为SizeRequirements数组),以及一组组件的总大小要求(实际上仅使用对齐字段)。您可以通过调用getAlignedSizeRequirements来获取总大小要求。此方法还需要一个指示是否执行正常或反向对齐的标志。使用正常对齐时,值0.0f表示要对齐的组件的左/顶部边缘。使用反向对齐时,0.0f表示右/底部边缘。
      参数:
      allocated - 要分配的总跨度 >= 0。
      total - 子请求的总和。
      children - 每个组件的大小要求。
      offsets - 每个子组件的从0开始的偏移量,其中分配了跨度(确定跨度的放置)。
      spans - 为每个子组件分配的跨度,以使总目标跨度。
      normal - 当为true时,对齐值0.0f表示左/顶部;当为false时,表示右/底部。
      自版本:
      1.4
    • adjustSizes

      public static int[] adjustSizes(int delta, SizeRequirements[] children)
      通过给定的量调整指定大小的数组。
      参数:
      delta - 指定的大小差异的int
      children - 一个SizeRequirements对象数组
      返回:
      包含每个项目的最终大小的int数组