javax.swing.text

## Interface AttributeSet

- All Known Subinterfaces:
    MutableAttributeSet, Style
  All Known Implementing Classes:
    AbstractDocument.AbstractElement, AbstractDocument.BranchElement, AbstractDocument.LeafElement, DefaultStyledDocument.SectionElement, HTMLDocument.BlockElement, HTMLDocument.RunElement, SimpleAttributeSet, StyleContext.NamedStyle, StyleContext.SmallAttributeSet

      public interface AttributeSet

  A collection of unique attributes. This is a read-only, immutable interface. An attribute is basically a key and a value assigned to the key. The collection may represent something like a style run, a logical style, etc. These are generally used to describe features that will contribute to some graphical representation such as a font. The set of possible keys is unbounded and can be anything. Typically View implementations will respond to attribute definitions and render something to represent the attributes.

  Attributes can potentially resolve in a hierarchy. If a key doesn't resolve locally, and a resolving parent exists, the key will be resolved through the parent.

  See Also:
    `MutableAttributeSet`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static interface` | `AttributeSet.CharacterAttribute` | This interface is the type signature that is expected to be present on any attribute key that contributes to character level presentation.
    `static interface` | `AttributeSet.ColorAttribute` | This interface is the type signature that is expected to be present on any attribute key that contributes to presentation of color.
    `static interface` | `AttributeSet.FontAttribute` | This interface is the type signature that is expected to be present on any attribute key that contributes to the determination of what font to use to render some text.
    `static interface` | `AttributeSet.ParagraphAttribute` | This interface is the type signature that is expected to be present on any attribute key that contributes to the paragraph level presentation.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Object` | `NameAttribute` | Attribute name used to name the collection of attributes.
    `static Object` | `ResolveAttribute` | Attribute name used to identify the resolving parent set of attributes, if one is defined.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `containsAttribute(Object name, Object value)` | Returns `true` if this set defines an attribute with the same name and an equal value.
    `boolean` | `containsAttributes(AttributeSet attributes)` | Returns `true` if this set defines all the attributes from the given set with equal values.
    `AttributeSet` | `copyAttributes()` | Returns an attribute set that is guaranteed not to change over time.
    `Object` | `getAttribute(Object key)` | Fetches the value of the given attribute.
    `int` | `getAttributeCount()` | Returns the number of attributes that are defined locally in this set.
    `Enumeration<?>` | `getAttributeNames()` | Returns an enumeration over the names of the attributes that are defined locally in the set.
    `AttributeSet` | `getResolveParent()` | Gets the resolving parent.
    `boolean` | `isDefined(Object attrName)` | Checks whether the named attribute has a value specified in the set without resolving through another attribute set.
    `boolean` | `isEqual(AttributeSet attr)` | Determines if the two attribute sets are equivalent.

- - ### Field Detail

    - #### NameAttribute

          static final Object NameAttribute

      Attribute name used to name the collection of attributes.

    - #### ResolveAttribute

          static final Object ResolveAttribute

      Attribute name used to identify the resolving parent set of attributes, if one is defined.

  - ### Method Detail

    - #### getAttributeCount

          int getAttributeCount()

      Returns the number of attributes that are defined locally in this set. Attributes that are defined in the parent set are not included.
      Returns:
        the number of attributes >= 0

    - #### isDefined

          boolean isDefined(Object attrName)

      Checks whether the named attribute has a value specified in the set without resolving through another attribute set.
      Parameters:
        `attrName` - the attribute name
      Returns:
        true if the attribute has a value specified

    - #### isEqual

          boolean isEqual(AttributeSet attr)

      Determines if the two attribute sets are equivalent.
      Parameters:
        `attr` - an attribute set
      Returns:
        true if the sets are equivalent

    - #### copyAttributes

          AttributeSet copyAttributes()

      Returns an attribute set that is guaranteed not to change over time.
      Returns:
        a copy of the attribute set

    - #### getAttribute

          Object getAttribute(Object key)

      Fetches the value of the given attribute. If the value is not found locally, the search is continued upward through the resolving parent (if one exists) until the value is either found or there are no more parents. If the value is not found, null is returned.
      Parameters:
        `key` - the non-null key of the attribute binding
      Returns:
        the value of the attribute, or `null` if not found

    - #### getAttributeNames

          Enumeration<?> getAttributeNames()

      Returns an enumeration over the names of the attributes that are defined locally in the set. Names of attributes defined in the resolving parent, if any, are not included. The values of the `Enumeration` may be anything and are not constrained to a particular `Object` type.

      This method never returns `null`. For a set with no attributes, it returns an empty `Enumeration`.

      Returns:
        the names

    - #### containsAttribute

          boolean containsAttribute(Object name,
                                    Object value)

      Returns `true` if this set defines an attribute with the same name and an equal value. If such an attribute is not found locally, it is searched through in the resolving parent hierarchy.
      Parameters:
        `name` - the non-null attribute name
        `value` - the value
      Returns:
        `true` if the set defines the attribute with an equal value, either locally or through its resolving parent
      Throws:
        `NullPointerException` - if either `name` or `value` is `null`

    - #### containsAttributes

          boolean containsAttributes(AttributeSet attributes)

      Returns `true` if this set defines all the attributes from the given set with equal values. If an attribute is not found locally, it is searched through in the resolving parent hierarchy.
      Parameters:
        `attributes` - the set of attributes to check against
      Returns:
        `true` if this set defines all the attributes with equal values, either locally or through its resolving parent
      Throws:
        `NullPointerException` - if `attributes` is `null`

    - #### getResolveParent

          AttributeSet getResolveParent()

      Gets the resolving parent.
      Returns:
        the parent

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.