模块 java.desktop

接口 AttributeSet

所有已知的子接口:
DocAttributeSet , PrintJobAttributeSet , PrintRequestAttributeSet , PrintServiceAttributeSet
所有已知的实现类:
HashAttributeSet , HashDocAttributeSet , HashPrintJobAttributeSet , HashPrintRequestAttributeSet , HashPrintServiceAttributeSet

public interface AttributeSet
Interface AttributeSet 指定一组打印属性的接口。打印属性是其类实现接口 Attribute 的对象。

一个属性集包含一组属性值,集合中不允许重复值。此外,属性集中的每个值都是某些属性的成员类别,并且集合中最多允许任何特定类别中的一个值。对于属性集,值是 Attribute 个对象,类别是 Class 个对象。属性的类别是该类属性的类层次结构根部的类(或接口)。请注意,属性对象的类别可能是属性对象类的超类,而不是属性对象类本身。属性对象的类别通过调用接口 Attribute 中定义的 getCategory() 方法来确定。

AttributeSet 的接口类似于 Java Collections API 的 java.util.Map 接口的接口,但在它接受的类型上有更多限制,并将键和值组合到 Attribute 中。

打印服务 API 中的多个位置使用了属性集。在每个上下文中,只允许某些类型的属性出现在属性集中,由属性类实现的标记接口决定——DocAttribute PrintRequestAttribute PrintJobAttribute PrintServiceAttribute 。属性集有四种特化,它们被限制为仅包含四种属性中的一种——分别为 DocAttributeSet PrintRequestAttributeSet PrintJobAttributeSet PrintServiceAttributeSet 。请注意,许多属性类实现了不止一种标记接口,因此可能出现在不止一种上下文中。

在某些情况下,只允许客户端检查属性集的内容而不能更改它们(该集是只读的)。在其他地方,允许客户端检查和更改属性集的内容(该集是可读写的)。对于只读属性集,调用变异操作会抛出 UnmodifiableSetException

打印服务 API 提供接口 AttributeSet、类 HashAttributeSet 的一种实现。客户端可以使用类 HashAttributeSet 或提供自己的接口 AttributeSet 实现。打印服务 API 还提供接口 AttributeSet 的子接口的实现——类 HashDocAttributeSet HashPrintRequestAttributeSet HashPrintJobAttributeSet HashPrintServiceAttributeSet

  • 方法总结

    修饰符和类型
    方法
    描述
    boolean
    add(Attribute attribute)
    如果指定的属性不存在,则将指定的属性添加到此属性集中,首先删除与指定的属性值相同的属性类别中的任何现有值。
    boolean
    addAll(AttributeSet attributes)
    将指定集中的所有元素添加到此属性。
    void
    从此属性集中删除所有属性。
    boolean
    containsKey(Class<?> category)
    如果此属性集包含指定类别的属性,则返回 true
    boolean
    如果此属性集包含给定的属性值,则返回 true
    boolean
    equals(Object object)
    比较指定对象与此属性集的相等性。
    get(Class<?> category)
    返回此属性集包含在给定属性类别中的属性值。
    int
    返回此属性集的散列码值。
    boolean
    如果此属性集不包含任何属性,则返回 true
    boolean
    remove(Class<?> category)
    从此属性集中移除此类别的任何属性(如果存在)。
    boolean
    remove(Attribute attribute)
    从此属性集中移除指定的属性(如果存在)。
    int
    size()
    返回此属性集中的属性数。
    返回此集合中包含的属性数组。
  • 方法详情

    • get

      Attribute  get(Class <?> category)
      返回此属性集包含在给定属性类别中的属性值。如果此属性集不包含给定属性类别中的任何属性值,则返回 null
      参数:
      category - 要返回其关联属性值的属性类别。它必须是实现接口 Attribute Class
      返回:
      此属性集中包含的给定属性类别中的属性值,或者 null 如果此属性集不包含给定属性类别中的任何属性值
      抛出:
      NullPointerException - 如果 categorynull
      ClassCastException - 如果 category 不是实现接口 Attribute Class
    • add

      boolean add(Attribute  attribute)
      如果指定的属性不存在,则将指定的属性添加到此属性集中,首先删除与指定的属性值相同的属性类别中的任何现有值。
      参数:
      attribute - 要添加到此属性集中的属性值
      返回:
      true 如果此属性集因调用而更改,即给定的属性值还不是此属性集的成员
      抛出:
      NullPointerException - 如果 attributenull
      UnmodifiableSetException - 如果此属性集不支持 add() 操作
    • remove

      boolean remove(Class <?> category)
      从此属性集中移除此类别的任何属性(如果存在)。如果 categorynull,则 remove() 什么都不做并返回 false
      参数:
      category - 要从此属性集中删除的属性类别
      返回:
      true 如果此属性集因调用而更改,即给定的属性值已成为此属性集的成员
      抛出:
      UnmodifiableSetException - 如果此属性集不支持 remove() 操作
    • remove

      boolean remove(Attribute  attribute)
      从此属性集中移除指定的属性(如果存在)。如果 attributenull,则 remove() 什么都不做并返回 false
      参数:
      attribute - 要从此属性集中删除的属性值
      返回:
      true 如果此属性集因调用而更改,即给定的属性值已成为此属性集的成员
      抛出:
      UnmodifiableSetException - 如果此属性集不支持 remove() 操作
    • containsKey

      boolean containsKey(Class <?> category)
      如果此属性集包含指定类别的属性,则返回 true
      参数:
      category - 要测试其在此属性集中的存在
      返回:
      true 如果此属性集包含指定类别的属性值
    • containsValue

      boolean containsValue(Attribute  attribute)
      如果此属性集包含给定的属性值,则返回 true
      参数:
      attribute - 要测试其在该属性集中是否存在的属性值
      返回:
      true 如果此属性集包含给定的属性值
    • addAll

      boolean addAll(AttributeSet  attributes)
      将指定集中的所有元素添加到此属性。结果与 = add(Attribute) 操作已连续应用于此属性集以及指定集中的每个元素相同。 addAll(AttributeSet) 操作的行为是未指定的,如果指定的集合在操作过程中被修改。

      如果 addAll(AttributeSet) 操作抛出异常,则对该属性集状态的影响取决于实现;异常点之前指定集中的元素可能已添加到此属性集中,也可能未添加到此属性集中。

      参数:
      attributes - 要将其元素添加到此属性集中
      返回:
      true 如果此属性集因调用而更改
      抛出:
      UnmodifiableSetException - 如果此属性集不支持 addAll(AttributeSet) 方法
      NullPointerException - 如果指定集合中的某个元素是 null
      参见:
    • size

      int size()
      返回此属性集中的属性数。如果此属性集包含超过 Integer.MAX_VALUE 个元素,则返回 Integer.MAX_VALUE
      返回:
      此属性集中的属性数
    • toArray

      Attribute [] toArray()
      返回此集合中包含的属性数组。
      返回:
      此集合中包含的 Attributes 作为数组,如果 AttributeSet 为空,则长度为零
    • clear

      void clear()
      从此属性集中删除所有属性。
      抛出:
      UnmodifiableSetException - 如果此属性集不支持 clear() 操作
    • isEmpty

      boolean isEmpty()
      如果此属性集不包含任何属性,则返回 true
      返回:
      true 如果此属性集不包含任何属性
    • equals

      boolean equals(Object  object)
      比较指定对象与此属性集的相等性。如果给定对象也是一个属性集并且两个属性集包含相同的属性类别-属性值映射,则返回 true。这可确保 equals() 方法在 AttributeSet 接口的不同实现中正常工作。
      重写:
      equals 在类 Object
      参数:
      object - 与此属性集进行比较
      返回:
      true如果指定的对象等于这个属性集
      参见:
    • hashCode

      int hashCode()
      返回此属性集的散列码值。属性集的哈希码定义为 AttributeSet 中每个条目的哈希码之和。这确保 t1.equals(t2) 暗示 t1.hashCode()==t2.hashCode() 对于任何两个属性集 t1t2,正如 Object.hashCode() 的总合同所要求的那样。
      重写:
      hashCode 在类 Object
      返回:
      此属性集的哈希码值
      参见: