package org.alcibiade.eternity.editor.gui; import javax.swing.JTextArea; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; /** * This component will receive document updates and scroll the displaying text * area automatically. * * @author Yannick Kirschhoffer * */ public class Autoscroller implements DocumentListener { /** * The text area that this component should update. */ private JTextArea textArea; /** * Create a new scroller * * @param textArea * The target text area component */ public Autoscroller(JTextArea textArea) { this.textArea = textArea; } /* * (non-Javadoc) * * @seejavax.swing.event.DocumentListener#changedUpdate(javax.swing.event. * DocumentEvent) */ public void changedUpdate(DocumentEvent e) { textArea.setCaretPosition(e.getDocument().getLength()); } /* * (non-Javadoc) * * @seejavax.swing.event.DocumentListener#insertUpdate(javax.swing.event. * DocumentEvent) */ public void insertUpdate(DocumentEvent e) { textArea.setCaretPosition(e.getDocument().getLength()); } /* * (non-Javadoc) * * @seejavax.swing.event.DocumentListener#removeUpdate(javax.swing.event. * DocumentEvent) */ public void removeUpdate(DocumentEvent e) { textArea.setCaretPosition(e.getDocument().getLength()); } }