javax.swing.text

## Interface AbstractDocument.Content

- All Known Implementing Classes:
    GapContent, StringContent
  Enclosing class:
    AbstractDocument

      public static interface AbstractDocument.Content

  Interface to describe a sequence of character content that can be edited. Implementations may or may not support a history mechanism which will be reflected by whether or not mutations return an UndoableEdit implementation.
  See Also:
    `AbstractDocument`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Position` | `createPosition(int offset)` | Creates a position within the content that will track change as the content is mutated.
    `void` | `getChars(int where, int len, Segment txt)` | Gets a sequence of characters and copies them into a Segment.
    `String` | `getString(int where, int len)` | Fetches a string of characters contained in the sequence.
    `UndoableEdit` | `insertString(int where, String str)` | Inserts a string of characters into the sequence.
    `int` | `length()` | Current length of the sequence of character content.
    `UndoableEdit` | `remove(int where, int nitems)` | Removes some portion of the sequence.

- - ### Method Detail

    - #### createPosition

          Position createPosition(int offset)
                           throws BadLocationException

      Creates a position within the content that will track change as the content is mutated.
      Parameters:
        `offset` - the offset in the content >= 0
      Returns:
        a Position
      Throws:
        `BadLocationException` - for an invalid offset

    - #### length

          int length()

      Current length of the sequence of character content.
      Returns:
        the length >= 0

    - #### insertString

          UndoableEdit insertString(int where,
                                    String str)
                             throws BadLocationException

      Inserts a string of characters into the sequence.
      Parameters:
        `where` - offset into the sequence to make the insertion >= 0
        `str` - string to insert
      Returns:
        if the implementation supports a history mechanism, a reference to an `Edit` implementation will be returned, otherwise returns `null`
      Throws:
        `BadLocationException` - thrown if the area covered by the arguments is not contained in the character sequence

    - #### remove

          UndoableEdit remove(int where,
                              int nitems)
                       throws BadLocationException

      Removes some portion of the sequence.
      Parameters:
        `where` - The offset into the sequence to make the insertion >= 0.
        `nitems` - The number of items in the sequence to remove >= 0.
      Returns:
        If the implementation supports a history mechanism, a reference to an Edit implementation will be returned, otherwise null.
      Throws:
        `BadLocationException` - Thrown if the area covered by the arguments is not contained in the character sequence.

    - #### getString

          String getString(int where,
                           int len)
                    throws BadLocationException

      Fetches a string of characters contained in the sequence.
      Parameters:
        `where` - Offset into the sequence to fetch >= 0.
        `len` - number of characters to copy >= 0.
      Returns:
        the string
      Throws:
        `BadLocationException` - Thrown if the area covered by the arguments is not contained in the character sequence.

    - #### getChars

          void getChars(int where,
                        int len,
                        Segment txt)
                 throws BadLocationException

      Gets a sequence of characters and copies them into a Segment.
      Parameters:
        `where` - the starting offset >= 0
        `len` - the number of characters >= 0
        `txt` - the target location to copy into
      Throws:
        `BadLocationException` - Thrown if the area covered by the arguments is not contained in the character sequence.

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.