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);
}
};
|