Document Events

When changes are made to a Document, observers of the Document are notified by the event types DocumentEvent and UndoableEditEvent, defined in the javax.swing.event package. UndoableEditEvent and its associated listener interface are discussed in Chapter 18. In this section, we’ll look at DocumentEvent and its relatives.

The DocumentListener Interface

Document uses this interface to notify its registered listeners of changes. It calls one of three methods depending on the category of change and passes a DocumentEvent to specify the details.


public void changedUpdate(DocumentEvent e)

Signal that an attribute or set of attributes has changed for some of the Document’s content. The DocumentEvent specifies exactly which part of the Document is affected.

public void insertUpdate(DocumentEvent e)

Signal that text has been inserted into the Document. The DocumentEvent specifies which part of the Document’s content is new.

public void removeUpdate(DocumentEvent e)

Signal that text has been removed from the Document. The DocumentEvent specifies where the text was located in the Document before it was deleted.

Suppose we want the parentheses matcher we wrote in the last section to update its colors “live” instead of waiting for the user to click on a button. All we have to do is register with the pane’s Document as a DocumentListener. Whenever we’re notified that text has been inserted or deleted, we recolor the parentheses. It’s that easy.

We do have to be careful not to ...

Get Java Swing, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.