ListenerSample.java Source code

Java tutorial

Introduction

Here is the source code for ListenerSample.java

Source

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