Module java.desktop

Class Size2DSyntax

java.lang.Object
javax.print.attribute.Size2DSyntax
所有已实现的接口:
Serializable, Cloneable
直接已知的子类:
MediaSize

public abstract class Size2DSyntax extends Object implements Serializable, Cloneable
Size2DSyntax是一个抽象基类,提供所有表示二维尺寸的属性的通用实现。

二维尺寸属性的值由两个项目组成,即X维度和Y维度。可以通过提供这两个值并指示值的测量单位来构造二维尺寸属性。提供了方法来返回二维尺寸属性的值,指示要返回值的单位。最常见的两种尺寸单位是英寸(in)和毫米(mm),并提供了导出常量INCHMM用于指示这些单位。

一旦构造完成,二维尺寸属性的值就是不可变的。

设计

二维尺寸属性的XY维度值在内部以微米(µm)的整数形式存储,其中1微米= 10-6米= 1/1000毫米= 1/25400英寸。这允许尺寸以1/1000毫米(= 1 µm)或1/100英寸(= 254 µm)的精度精确表示。如果以负二次幂表示分数英寸,这允许尺寸以1/8英寸(= 3175 µm)的精度精确表示,但不是1/16英寸(因为1/16英寸不等于整数微米)。

在内部以µm的常见单位存储尺寸,使得可以比较两个尺寸属性,而不必考虑它们创建时的单位;例如,8.5英寸将与215.9毫米相等,因为它们都存储为215900 µm。例如,查找服务可以基于其序列化表示的相等性匹配分辨率属性,而不考虑它们创建时的单位。使用整数进行内部存储允许进行精确的相等比较,如果使用内部浮点表示,则不能保证这种精确性。请注意,如果您正在寻找以公制单位为单位的U.S. letter大小的介质,您必须搜索尺寸为215.9 x 279.4毫米;四舍五入为整数的216 x 279毫米将不匹配。

导出常量INCH实际上是将英寸乘以µm得到的转换因子。同样,导出常量MM是将毫米乘以µm得到的转换因子。客户端可以通过提供自己的转换因子来指定以英寸或毫米之外的单位表示的分辨率值。但是,由于选择µm的内部单位时只考虑支持英寸和毫米这两种外部单位,因此不能保证客户端单位的转换因子是一个精确的整数。如果转换因子不是一个精确的整数,则客户端单位的分辨率值将无法精确存储。

参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    表示单位为英寸(in)的值。
    static final int
    MM
    表示单位为毫米(mm)的值。
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Size2DSyntax(float x, float y, int units)
    从给定的浮点值构造一个新的二维尺寸属性。
    protected
    Size2DSyntax(int x, int y, int units)
    从给定的整数值构造一个新的二维尺寸属性。
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Object object)
    返回此二维尺寸属性是否等同于传入的对象。
    float[]
    getSize(int units)
    获取此二维尺寸属性的尺寸以给定单位为浮点值。
    float
    getX(int units)
    返回此二维尺寸属性的X维度以给定单位为浮点值。
    protected int
    返回此二维尺寸属性的X维度,单位为微米(µm)。
    float
    getY(int units)
    返回此二维尺寸属性的Y维度以给定单位为浮点值。
    protected int
    返回此二维尺寸属性的Y维度,单位为微米(µm)。
    int
    返回此二维尺寸属性的哈希码值。
    返回此二维尺寸属性的字符串版本。
    toString(int units, String unitsName)
    返回此二维尺寸属性在给定单位中的字符串版本。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • INCH

      public static final int INCH
      表示单位为英寸(in)的值。实际上是将英寸乘以µm得到的转换因子(25400)。
      参见:
    • MM

      public static final int MM
      表示单位为毫米(mm)的值。实际上是将毫米乘以µm得到的转换因子(1000)。
      参见:
  • Constructor Details

    • Size2DSyntax

      protected Size2DSyntax(float x, float y, int units)
      从给定的浮点值构造一个新的二维尺寸属性。
      参数:
      x - X维度
      y - Y维度
      units - 单位转换因子,例如INCHMM
      抛出:
      IllegalArgumentException - 如果x < 0y < 0units < 1
    • Size2DSyntax

      protected Size2DSyntax(int x, int y, int units)
      从给定的整数值构造一个新的二维尺寸属性。
      参数:
      x - X维度
      y - Y维度
      units - 单位转换因子,例如INCHMM
      抛出:
      IllegalArgumentException - 如果x < 0y < 0units < 1
  • Method Details

    • getSize

      public float[] getSize(int units)
      获取此二维尺寸属性的尺寸以给定单位为浮点值。
      参数:
      units - 单位转换因子,例如INCHMM
      返回:
      包含X维度在索引0处和Y维度在索引1处的双元素数组
      抛出:
      IllegalArgumentException - 如果units < 1
    • getX

      public float getX(int units)
      返回此二维尺寸属性的X维度以给定单位为浮点值。
      参数:
      units - 单位转换因子,例如INCHMM
      返回:
      X维度
      抛出:
      IllegalArgumentException - 如果units < 1
    • getY

      public float getY(int units)
      返回此二维尺寸属性的Y维度以给定单位为浮点值。
      参数:
      units - 单位转换因子,例如INCHMM
      返回:
      Y维度
      抛出:
      IllegalArgumentException - 如果units < 1
    • toString

      public String toString(int units, String unitsName)
      返回此二维尺寸属性在给定单位中的字符串版本。字符串采用"XxY U"的形式,其中XX维度,YY维度,U是单位名称。值以浮点数显示。
      参数:
      units - 单位转换因子,例如INCHMM
      unitsName - 单位名称字符串,例如inmm。如果为null,则结果不附加单位名称
      返回:
      此二维尺寸属性的String版本
      抛出:
      IllegalArgumentException - 如果units < 1
    • equals

      public boolean equals(Object object)
      返回此二维尺寸属性是否等同于传入的对象。要等同,必须满足以下所有条件:
      1. object不是null
      2. objectSize2DSyntax类的实例。
      3. 此属性的X维度等于objectX维度。
      4. 此属性的Y维度等于objectY维度。
      覆盖:
      equals 在类 Object
      参数:
      object - 要比较的Object
      返回:
      如果object等同于此二维尺寸属性,则返回true,否则返回false
      参见:
    • hashCode

      public int hashCode()
      返回此二维尺寸属性的哈希码值。
      覆盖:
      hashCode 在类 Object
      返回:
      该对象的哈希码值。
      参见:
    • toString

      public String toString()
      返回此二维大小属性的字符串版本。字符串采用形式"XxY um",其中XX维度,YY维度。这些值以微米为单位报告。
      覆盖:
      toString 在类 Object
      返回:
      对象的字符串表示。
    • getXMicrometers

      protected int getXMicrometers()
      返回此二维大小属性的X维度,以微米(µm)为单位。(供子类使用。)
      返回:
      X维度(µm)
    • getYMicrometers

      protected int getYMicrometers()
      返回此二维大小属性的Y维度,以微米(µm)为单位。(供子类使用。)
      返回:
      Y维度(µm)