Style (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: javax.swing.text, interface: Style
Keywords: javax.swing.text.Style interface

# Interface Style

All Superinterfaces:
  `AttributeSet, MutableAttributeSet`

All Known Implementing Classes:
  `StyleContext.NamedStyle`

public interface Style extends MutableAttributeSet
A collection of attributes to associate with an element in a document. Since these are typically used to associate character and paragraph styles with the element, operations for this are provided. Other customized attributes that get associated with the element will effectively be name-value pairs that live in a hierarchy and if a name (key) is not found locally, the request is forwarded to the parent. Commonly used attributes are separated out to facilitate alternative implementations that are more efficient.

- ## Nested Class Summary

  ### Nested classes/interfaces declared in interface AttributeSet

  `AttributeSet.CharacterAttribute, AttributeSet.ColorAttribute, AttributeSet.FontAttribute, AttributeSet.ParagraphAttribute`
  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 declared in interface AttributeSet

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addChangeListener(ChangeListener l)`
  Adds a listener to track whenever an attribute has been changed.
  `String`
  `getName()`
  Fetches the name of the style.
  `void`
  `removeChangeListener(ChangeListener l)`
  Removes a listener that was tracking attribute changes.

  ### Methods declared in interface AttributeSet

  `containsAttribute, containsAttributes, copyAttributes, getAttribute, getAttributeCount, getAttributeNames, getResolveParent, isDefined, isEqual`
  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.

  ### Methods declared in interface MutableAttributeSet

  `addAttribute, addAttributes, removeAttribute, removeAttributes, removeAttributes, setResolveParent`
  Modifier and Type
  Method
  Description
  `void`
  `addAttribute(Object name, Object value)`
  Creates a new attribute set similar to this one except that it contains an attribute with the given name and value.
  `void`
  `addAttributes(AttributeSet attributes)`
  Creates a new attribute set similar to this one except that it contains the given attributes and values.
  `void`
  `removeAttribute(Object name)`
  Removes an attribute with the given `name`.
  `void`
  `removeAttributes(Enumeration<?> names)`
  Removes an attribute set with the given `names`.
  `void`
  `removeAttributes(AttributeSet attributes)`
  Removes a set of attributes with the given `name`.
  `void`
  `setResolveParent(AttributeSet parent)`
  Sets the resolving parent.

- ## Method Details

  - ### getName

    String getName()
    Fetches the name of the style. A style is not required to be named, so `null` is returned if there is no name associated with the style.
    Returns:
      the name

  - ### addChangeListener

    void addChangeListener(ChangeListener l)
    Adds a listener to track whenever an attribute has been changed.
    Parameters:
      `l` - the change listener

  - ### removeChangeListener

    void removeChangeListener(ChangeListener l)
    Removes a listener that was tracking attribute changes.
    Parameters:
      `l` - the change listener