DocumentListener Demo
import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.Document; import javax.swing.text.Element; public class ListenerSample { public static void main(String args[]) { JFrame frame = new JFrame("Offset Example"); Container content = frame.getContentPane(); JTextArea textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); final Document document = textArea.getDocument(); document.addDocumentListener(new MyListener()); content.add(scrollPane, BorderLayout.CENTER); frame.setSize(250, 150); frame.setVisible(true); } } class MyListener implements DocumentListener { public void changedUpdate(DocumentEvent documentEvent) { printInfo(documentEvent); } public void insertUpdate(DocumentEvent documentEvent) { printInfo(documentEvent); } public void removeUpdate(DocumentEvent documentEvent) { printInfo(documentEvent); } public void printInfo(DocumentEvent documentEvent) { System.out.println("Offset: " + documentEvent.getOffset()); System.out.println("Length: " + documentEvent.getLength()); DocumentEvent.EventType type = documentEvent.getType(); String typeString = null; if (type.equals(DocumentEvent.EventType.CHANGE)) { typeString = "Change"; } else if (type.equals(DocumentEvent.EventType.INSERT)) { typeString = "Insert"; } else if (type.equals(DocumentEvent.EventType.REMOVE)) { typeString = "Remove"; } System.out.println("Type : " + typeString); Document documentSource = documentEvent.getDocument(); Element rootElement = documentSource.getDefaultRootElement(); DocumentEvent.ElementChange change = documentEvent .getChange(rootElement); System.out.println("Change: " + change); } };