# Package javax.swing.undo

Allows developers to provide support for undo/redo in applications such as text editors.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  StateEditable | StateEditable defines the interface for objects that can have their state undone/redone by a StateEdit.
  UndoableEdit | An `UndoableEdit` represents an edit.

- Class Summary
  Class | Description
  --- | ---
  AbstractUndoableEdit | An abstract implementation of `UndoableEdit`, implementing simple responses to all boolean methods in that interface.
  CompoundEdit | A concrete subclass of AbstractUndoableEdit, used to assemble little UndoableEdits into great big ones.
  StateEdit | StateEdit is a general edit for objects that change state.
  UndoableEditSupport | A support class used for managing `UndoableEdit` listeners.
  UndoManager | `UndoManager` manages a list of `UndoableEdits`, providing a way to undo or redo the appropriate edits.

- Exception Summary
  Exception | Description
  --- | ---
  CannotRedoException | Thrown when an UndoableEdit is told to `redo()` and can't.
  CannotUndoException | Thrown when an UndoableEdit is told to `undo()` and can't.

## Package javax.swing.undo Description

Allows developers to provide support for undo/redo in applications such as text editors.

Note: Most of the Swing API is not thread safe. For details, see Threads and Swing, a section in The Java Tutorial.

## Related Documentation

For overviews, tutorials, examples, guides, and tool documentation, please see:

- Implementing Undo and Redo, a section in The Java Tutorial

Since:
  1.2

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.