These code examples and other materials are subject to Sun Microsystems, Inc. Legal Terms
Adding Undo and Redo to a Text Component
JTextArea textarea = new JTextArea();
final UndoManager undo = new UndoManager();
Document doc = textarea.getDocument();
//The next two lines should be in one line.
doc.addUndoableEditListener(
new UndoableEditListener() {
The next two lines should be in one line.
public void undoableEditHappened(
UndoableEditEvent evt) {
undo.addEdit(evt.getEdit());
}
});
textarea.getActionMap().put("Undo",
new AbstractAction("Undo") {
public void actionPerformed(ActionEvent evt) {
try {
if (undo.canUndo()) {
undo.undo();
}
} catch (CannotUndoException e) {
}
}
});
textarea.getInputMap().put(KeyStroke.getKeyStroke(
"control Z"), "Undo");
textarea.getActionMap().put("Redo",
new AbstractAction("Redo") {
public void actionPerformed(ActionEvent evt) {
try {
if (undo.canRedo()) {
undo.redo();
}
} catch (CannotRedoException e) {
}
}
});
textarea.getInputMap().put(KeyStroke.getKeyStroke(
"control Y"), "Redo");
Examplets TM provided by permission of the publisher, Addision-Wesley, and Author Patrick Chan.
Order this book from Amazon