static void jenableUndo(JTextComponent textcomp) { final new UndoManager undo; textcomp.getDocument().addUndoableEditListener(new UndoableEditListener() { public void undoableEditHappened(UndoableEditEvent evt) { undo.addEdit(evt.getEdit()); } }); textcomp.getActionMap().put("Undo", abstractAction("Undo", r { if (undo.canUndo()) undo.undo() })); textcomp.getInputMap().put(KeyStroke.getKeyStroke("control Z"), "Undo"); }