javax.print.attribute

接口
异常
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

一旦构造之后,二维大小属性的值就是不可变的。

设计

将二维大小属性的 X 和 Y 维度值在内部存储为整数,单位是微米 (µm),其中 1 微米 = 10-6 米 = 1/1000 毫米 = 1/25400 英寸。这使要表示的维度精确到 1/1000 毫米 (= 1 µm) 或 1/100 英寸 (= 254 µm)。如果用 2 的负次幂表示小数英寸,这使表示的维度精确到 1/8 英寸 (= 3175 µm),而不是 1/16 英寸(因为 1/16 英寸不等于一个整数微米)。

以通用单位微米的形式内部存储该维度可以比较这两种大小的属性,无需考虑创建它们的单位;例如,8.5 英寸将相当于 215.9 毫米,因为他们都存储为 215900 微米。例如,查询服务可以基于其序列化表示形式的相等性来匹配分辨率属性,无论它们用哪种单位创建。对内部存储使用整数可以允许执行精确的相等性比较,如果使用内部浮点表示形式,则不保证这一点。注意,如果查找公制单位的美国信函大小介质,您必须搜索大小为 215.9 x 279.4 毫米的介质;舍入为整数 216 x 279 毫米将不匹配。

导出的常量 INCH 实际上是转换因子,将一个以英寸 为单位的值乘以该转换因子可以获得以微米为单位的值。同样,导出的常量 MM 实际上也是转换因子,将一个以毫米为单位的值乘以该转换因子可以获得以微米为单位的值。客户机可以通过提供其自已的转换因子来指定使用某些单位(英寸或毫米除外)的分辨率值。但是,由于选择内部单位微米时只考虑支持外部单位英寸和毫米,所以不能保证针对客户机单位的转换因子是一个准确的整数。如果转换因子不是一个准确的整数,则使用客户机单位的分辨率值不能精确地存储。

另请参见:
序列化表格

字段摘要
static int INCH
          指示单位为英寸 (in) 的值。
static int MM
          指示单位为毫米 (mm) 的值。
 
构造方法摘要
protected Size2DSyntax(float x, float y, int units)
          根据给定的浮点值构造一个新的二维大小属性。
protected Size2DSyntax(int x, int y, int units)
          根据给定的整数值构造一个新的二维大小属性。
 
方法摘要
 boolean equals(Object object)
          返回此二维大小属性是否等效于传入的对象。
 float[] getSize(int units)
          获取给定单位的此二维大小属性的维度作为浮点值。
 float getX(int units)
          返回给定单位的此二维大小属性的 X 维度作为浮点值。
protected  int getXMicrometers()
          返回此二维大小属性的 X 维度(以微米为单位)。
 float getY(int units)
          返回给定单位的此二维大小属性的 Y 维度作为浮点值。
protected  int getYMicrometers()
          返回此二维大小属性的 Y 维度(以微米为单位)。
 int hashCode()
          返回此二维大小属性的哈希码值。
 String toString()
          返回此二维大小属性的字符串版本。
 String toString(int units, String unitsName)
          返回给定单位的此二维大小属性的字符串版本。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

字段详细信息

INCH

public static final int INCH
指示单位为英寸 (in) 的值。它实际上是转换因子,英寸乘以该转换因子得到微米 (25400)。

另请参见:
常量字段值

MM

public static final int MM
指示单位为毫米 (mm) 的值。它实际上是转换因子,毫米乘以该转换因子得到微米 (1000)。

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

Size2DSyntax

protected Size2DSyntax(float x,
                       float y,
                       int units)
根据给定的浮点值构造一个新的二维大小属性。

参数:
x - X 维度。
y - Y 维度。
units - 单位转换因子,即 INCHMM
抛出:
IllegalArgumentException - (未经检查的异常)如果 x < 0 或 y < 0 或 units < 1。

Size2DSyntax

protected Size2DSyntax(int x,
                       int y,
                       int units)
根据给定的整数值构造一个新的二维大小属性。

参数:
x - X 维度。
y - Y 维度。
units - 单位转换因子,即 INCHMM
抛出:
IllegalArgumentException - (未经检查的异常)如果 x < 0 或 y < 0 或 units < 1。
方法详细信息

getSize

public float[] getSize(int units)
获取给定单位的此二维大小属性的维度作为浮点值。

参数:
units - 单位转换因子,即 INCHMM
返回:
包含索引 0 处的 X 维度和索引 1 处的 Y 维度的两元素数组。
抛出:
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",其中 X 为 X 维度, Y 为 Y 维度, U 为单位名称。以浮点形式显示该值。

参数:
units - 单位转换因子,即 INCHMM
unitsName - 单位名称字符串,即 "in""mm"。如果为 null,则没有任何单位名称附加到该结果。
返回:
此二维大小属性的字符串版本。
抛出:
IllegalArgumentException - (未经检查的异常)如果 units < 1,则抛出该异常。

equals

public boolean equals(Object object)
返回此二维大小属性是否等效于传入的对象。若要等效,以下所有条件都必须为 true:
  1. object 不为 null。
  2. object 是类 Size2DSyntax 的一个实例。
  3. 此属性的 X 维度等于 object 的 X 维度。
  4. 此属性的 Y 维度等于 object 的 Y 维度。

覆盖:
Object 中的 equals
参数:
object - 要比较的对象。
返回:
如果 object 等效于此二维大小属性,则返回 True,否则返回 false。
另请参见:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此二维大小属性的哈希码值。

覆盖:
Object 中的 hashCode
返回:
此对象的一个哈希码值。
另请参见:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
返回此二维大小属性的字符串版本。该字符串采用的形式是 "XxY um",其中 X 为 X 维度, Y 为 Y 维度。使用内部单位微米报告该值。

覆盖:
Object 中的 toString
返回:
该对象的字符串表示形式。

getXMicrometers

protected int getXMicrometers()
返回此二维大小属性的 X 维度(以微米为单位)。(在子类中使用。)

返回:
X 维度(单位微米)。

getYMicrometers

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

返回:
Y 维度(微米)。