import javax.swing.undo.*; class Notepad { UndoManager undo = new UndoManager(); UndoAction undoAction = new UndoAction( this ); RedoAction redoAction = new RedoAction( this ); private JButton undoButton, redoButton; Notepad() { ediT.add( undoAction ); ediT.add( redoAction ); toolBar.add( undoAction ); toolBar.add( redoAction ); textArea.getDocument().addUndoableEditListener( new UndoableEditListener() { public void undoableEditHappened( UndoableEditEvent e ) { //Remember the edit and update the menus undo.addEdit( e.getEdit() ); undoAction.update(); redoAction.update(); } } ); } }