Вы можете сделать это
UndoManager manager = new UndoManager();
textArea.getDocument().addUndoableEditListener(manager);
Как только менеджер прикреплен к документу JTextArea, он будет отслеживать все изменения
к содержанию текстовой области.
После присоединения менеджера к текстовому компоненту вы должны предоставить некоторые средства, чтобы сообщить
менеджер, чтобы отменить / повторить операцию.
При необходимости вызывайте открытый метод void undo () и открытый void redo () UndoManager (например, метод actionPerformed () для actionlistener)
Вы можете прикрепить объекты Action к кнопке следующим образом вместо вызова методов undo () и redo (), что упрощает задачу:
JButton undoButton = new JButton(UndoManagerHelper.getUndoAction(manager));
JButton redoButton = new JButton(UndoManagerHelper.getRedoAction(manager));