Highlighter (Java Platform SE 8 )
Keywords: javax.swing.text.Highlighter interface
Date: 2026-04-24

javax.swing.text

## Interface Highlighter

- All Known Implementing Classes:
    BasicTextUI.BasicHighlighter, DefaultHighlighter, LayeredHighlighter

      public interface Highlighter

  An interface for an object that allows one to mark up the background with colored areas.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `Highlighter.Highlight`
    `static interface` | `Highlighter.HighlightPainter` Highlight renderer.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `addHighlight(int p0, int p1, Highlighter.HighlightPainter p)` Adds a highlight to the view.
    `void` | `changeHighlight(Object tag, int p0, int p1)` Changes the given highlight to span a different portion of the document.
    `void` | `deinstall(JTextComponent c)` Called when the UI is being removed from the interface of a JTextComponent.
    `Highlighter.Highlight[]` | `getHighlights()` Fetches the current list of highlights.
    `void` | `install(JTextComponent c)` Called when the UI is being installed into the interface of a JTextComponent.
    `void` | `paint(Graphics g)` Renders the highlights.
    `void` | `removeAllHighlights()` Removes all highlights this highlighter is responsible for.
    `void` | `removeHighlight(Object tag)` Removes a highlight from the view.

- - ### Method Detail

    - #### install

          void install(JTextComponent c)

      Called when the UI is being installed into the interface of a JTextComponent. This can be used to gain access to the model that is being navigated by the implementation of this interface.
      Parameters:
        `c` - the JTextComponent editor

    - #### deinstall

          void deinstall(JTextComponent c)

      Called when the UI is being removed from the interface of a JTextComponent. This is used to unregister any listeners that were attached.
      Parameters:
        `c` - the JTextComponent editor

    - #### paint

          void paint(Graphics g)

      Renders the highlights.
      Parameters:
        `g` - the graphics context.

    - #### addHighlight

          Object addHighlight(int p0,
                              int p1,
                              Highlighter.HighlightPainter p)
                       throws BadLocationException

      Adds a highlight to the view. Returns a tag that can be used to refer to the highlight.
      Parameters:
        `p0` - the beginning of the range >= 0
        `p1` - the end of the range >= p0
        `p` - the painter to use for the actual highlighting
      Returns:
        an object that refers to the highlight
      Throws:
        `BadLocationException` - for an invalid range specification

    - #### removeHighlight

          void removeHighlight(Object tag)

      Removes a highlight from the view.
      Parameters:
        `tag` - which highlight to remove

    - #### removeAllHighlights

          void removeAllHighlights()

      Removes all highlights this highlighter is responsible for.

    - #### changeHighlight

          void changeHighlight(Object tag,
                               int p0,
                               int p1)
                        throws BadLocationException

      Changes the given highlight to span a different portion of the document. This may be more efficient than a remove/add when a selection is expanding/shrinking (such as a sweep with a mouse) by damaging only what changed.
      Parameters:
        `tag` - which highlight to change
        `p0` - the beginning of the range >= 0
        `p1` - the end of the range >= p0
      Throws:
        `BadLocationException` - for an invalid range specification

    - #### getHighlights

          Highlighter.Highlight[] getHighlights()

      Fetches the current list of highlights.
      Returns:
        the highlight list

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.