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

# Interface StyledDocument

All Superinterfaces:
  `Document`

All Known Implementing Classes:
  `DefaultStyledDocument, HTMLDocument`

public interface StyledDocument extends Document
Interface for a generic styled document.

- ## Field Summary

  ### Fields declared in interface Document

  `StreamDescriptionProperty, TitleProperty`
  Modifier and Type
  Field
  Description
  `static final String`
  `StreamDescriptionProperty`
  The property name for the description of the stream used to initialize the document.
  `static final String`
  `TitleProperty`
  The property name for the title of the document, if there is one.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Style`
  `addStyle(String nm, Style parent)`
  Adds a new style into the logical style hierarchy.
  `Color`
  `getBackground(AttributeSet attr)`
  Takes a set of attributes and turn it into a background color specification.
  `Element`
  `getCharacterElement(int pos)`
  Gets the element that represents the character that is at the given offset within the document.
  `Font`
  `getFont(AttributeSet attr)`
  Takes a set of attributes and turn it into a font specification.
  `Color`
  `getForeground(AttributeSet attr)`
  Takes a set of attributes and turn it into a foreground color specification.
  `Style`
  `getLogicalStyle(int p)`
  Gets a logical style for a given position in a paragraph.
  `Element`
  `getParagraphElement(int pos)`
  Gets the element that represents the paragraph that encloses the given offset within the document.
  `Style`
  `getStyle(String nm)`
  Fetches a named style previously added.
  `void`
  `removeStyle(String nm)`
  Removes a named style previously added to the document.
  `void`
  `setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)`
  Changes the content element attributes used for the given range of existing content in the document.
  `void`
  `setLogicalStyle(int pos, Style s)`
  Sets the logical style to use for the paragraph at the given position.
  `void`
  `setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)`
  Sets paragraph attributes.

  ### Methods declared in interface Document

  `addDocumentListener, addUndoableEditListener, createPosition, getDefaultRootElement, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, insertString, putProperty, remove, removeDocumentListener, removeUndoableEditListener, render`
  Modifier and Type
  Method
  Description
  `void`
  `addDocumentListener(DocumentListener listener)`
  Registers the given observer to begin receiving notifications when changes are made to the document.
  `void`
  `addUndoableEditListener(UndoableEditListener listener)`
  Registers the given observer to begin receiving notifications when undoable edits are made to the document.
  `Position`
  `createPosition(int offs)`
  This method allows an application to mark a place in a sequence of character content.
  `Element`
  `getDefaultRootElement()`
  Returns the root element that views should be based upon, unless some other mechanism for assigning views to element structures is provided.
  `Position`
  `getEndPosition()`
  Returns a position that represents the end of the document.
  `int`
  `getLength()`
  Returns number of characters of content currently in the document.
  `Object`
  `getProperty(Object key)`
  Gets the properties associated with the document.
  `Element[]`
  `getRootElements()`
  Returns all of the root elements that are defined.
  `Position`
  `getStartPosition()`
  Returns a position that represents the start of the document.
  `String`
  `getText(int offset, int length)`
  Fetches the text contained within the given portion of the document.
  `void`
  `getText(int offset, int length, Segment txt)`
  Fetches the text contained within the given portion of the document.
  `void`
  `insertString(int offset, String str, AttributeSet a)`
  Inserts a string of content.
  `void`
  `putProperty(Object key, Object value)`
  Associates a property with the document.
  `void`
  `remove(int offs, int len)`
  Removes a portion of the content of the document.
  `void`
  `removeDocumentListener(DocumentListener listener)`
  Unregisters the given observer from the notification list so it will no longer receive change updates.
  `void`
  `removeUndoableEditListener(UndoableEditListener listener)`
  Unregisters the given observer from the notification list so it will no longer receive updates.
  `void`
  `render(Runnable r)`
  Allows the model to be safely rendered in the presence of concurrency, if the model supports being updated asynchronously.

- ## Method Details

  - ### addStyle

    Style addStyle(String nm, Style parent)
    Adds a new style into the logical style hierarchy. Style attributes resolve from bottom up so an attribute specified in a child will override an attribute specified in the parent.
    Parameters:
      `nm` - the name of the style (must be unique within the collection of named styles). The name may be null if the style is unnamed, but the caller is responsible for managing the reference returned as an unnamed style can't be fetched by name. An unnamed style may be useful for things like character attribute overrides such as found in a style run.
      `parent` - the parent style. This may be null if unspecified attributes need not be resolved in some other style.
    Returns:
      the style

  - ### removeStyle

    void removeStyle(String nm)
    Removes a named style previously added to the document.
    Parameters:
      `nm` - the name of the style to remove

  - ### getStyle

    Style getStyle(String nm)
    Fetches a named style previously added.
    Parameters:
      `nm` - the name of the style
    Returns:
      the style

  - ### setCharacterAttributes

    void setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)
    Changes the content element attributes used for the given range of existing content in the document. All of the attributes defined in the given Attributes argument are applied to the given range. This method can be used to completely remove all content level attributes for the given range by giving an Attributes argument that has no attributes defined and setting replace to true.
    Parameters:
      `offset` - the start of the change >= 0
      `length` - the length of the change >= 0
      `s` - the non-null attributes to change to. Any attributes defined will be applied to the text for the given range.
      `replace` - indicates whether or not the previous attributes should be cleared before the new attributes as set. If true, the operation will replace the previous attributes entirely. If false, the new attributes will be merged with the previous attributes.

  - ### setParagraphAttributes

    void setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)
    Sets paragraph attributes.
    Parameters:
      `offset` - the start of the change >= 0
      `length` - the length of the change >= 0
      `s` - the non-null attributes to change to. Any attributes defined will be applied to the text for the given range.
      `replace` - indicates whether or not the previous attributes should be cleared before the new attributes are set. If true, the operation will replace the previous attributes entirely. If false, the new attributes will be merged with the previous attributes.

  - ### setLogicalStyle

    void setLogicalStyle(int pos, Style s)
    Sets the logical style to use for the paragraph at the given position. If attributes aren't explicitly set for character and paragraph attributes they will resolve through the logical style assigned to the paragraph, which in turn may resolve through some hierarchy completely independent of the element hierarchy in the document.
    Parameters:
      `pos` - the starting position >= 0
      `s` - the style to set

  - ### getLogicalStyle

    Style getLogicalStyle(int p)
    Gets a logical style for a given position in a paragraph.
    Parameters:
      `p` - the position >= 0
    Returns:
      the style

  - ### getParagraphElement

    Element getParagraphElement(int pos)
    Gets the element that represents the paragraph that encloses the given offset within the document.
    Parameters:
      `pos` - the offset >= 0
    Returns:
      the element

  - ### getCharacterElement

    Element getCharacterElement(int pos)
    Gets the element that represents the character that is at the given offset within the document.
    Parameters:
      `pos` - the offset >= 0
    Returns:
      the element

  - ### getForeground

    Color getForeground(AttributeSet attr)
    Takes a set of attributes and turn it into a foreground color specification. This might be used to specify things like brighter, more hue, etc.
    Parameters:
      `attr` - the set of attributes
    Returns:
      the color

  - ### getBackground

    Color getBackground(AttributeSet attr)
    Takes a set of attributes and turn it into a background color specification. This might be used to specify things like brighter, more hue, etc.
    Parameters:
      `attr` - the set of attributes
    Returns:
      the color

  - ### getFont

    Font getFont(AttributeSet attr)
    Takes a set of attributes and turn it into a font specification. This can be used to turn things like family, style, size, etc into a font that is available on the system the document is currently being used on.
    Parameters:
      `attr` - the set of attributes
    Returns:
      the font