# 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
Description
`static interface`
`Highlighter.Highlight`
A highlight.
`static interface`
`Highlighter.HighlightPainter`
Highlight renderer.

## Method Summary

Modifier and Type
Method
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 Details

### 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