javax.swing.undo

## Class UndoableEditSupport

- java.lang.Object
- - javax.swing.undo.UndoableEditSupport

-     public class UndoableEditSupport
      extends Object

  A support class used for managing `UndoableEdit` listeners.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected CompoundEdit` | `compoundEdit` |
    `protected Vector<UndoableEditListener>` | `listeners` |
    `protected Object` | `realSource` |
    `protected int` | `updateLevel` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `UndoableEditSupport()` | Constructs an `UndoableEditSupport` object.
    `UndoableEditSupport(Object r)` | Constructs an `UndoableEditSupport` object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `_postEdit(UndoableEdit e)` | Called only from `postEdit` and `endUpdate`.
    `void` | `addUndoableEditListener(UndoableEditListener l)` | Registers an `UndoableEditListener`.
    `void` | `beginUpdate()` |
    `protected CompoundEdit` | `createCompoundEdit()` | Called only from `beginUpdate`.
    `void` | `endUpdate()` | DEADLOCK WARNING: Calling this method may call `undoableEditHappened` in all listeners.
    `UndoableEditListener[]` | `getUndoableEditListeners()` | Returns an array of all the `UndoableEditListener`s added to this UndoableEditSupport with addUndoableEditListener().
    `int` | `getUpdateLevel()` | Returns the update level value.
    `void` | `postEdit(UndoableEdit e)` | DEADLOCK WARNING: Calling this method may call `undoableEditHappened` in all listeners.
    `void` | `removeUndoableEditListener(UndoableEditListener l)` | Removes an `UndoableEditListener`.
    `String` | `toString()` | Returns a string that displays and identifies this object's properties.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### updateLevel

          protected int updateLevel

    - #### compoundEdit

          protected CompoundEdit compoundEdit

    - #### listeners

          protected Vector<UndoableEditListener> listeners

    - #### realSource

          protected Object realSource

  - ### Constructor Detail

    - #### UndoableEditSupport

          public UndoableEditSupport()

      Constructs an `UndoableEditSupport` object.

    - #### UndoableEditSupport

          public UndoableEditSupport(Object r)

      Constructs an `UndoableEditSupport` object.
      Parameters:
        `r` - an `Object`

  - ### Method Detail

    - #### addUndoableEditListener

          public void addUndoableEditListener(UndoableEditListener l)

      Registers an `UndoableEditListener`. The listener is notified whenever an edit occurs which can be undone.
      Parameters:
        `l` - an `UndoableEditListener` object
      See Also:
        `removeUndoableEditListener(javax.swing.event.UndoableEditListener)`

    - #### removeUndoableEditListener

          public void removeUndoableEditListener(UndoableEditListener l)

      Removes an `UndoableEditListener`.
      Parameters:
        `l` - the `UndoableEditListener` object to be removed
      See Also:
        `addUndoableEditListener(javax.swing.event.UndoableEditListener)`

    - #### getUndoableEditListeners

          public UndoableEditListener[] getUndoableEditListeners()

      Returns an array of all the `UndoableEditListener`s added to this UndoableEditSupport with addUndoableEditListener().
      Returns:
        all of the `UndoableEditListener`s added or an empty array if no listeners have been added
      Since:
        1.4

    - #### _postEdit

          protected void _postEdit(UndoableEdit e)

      Called only from `postEdit` and `endUpdate`. Calls `undoableEditHappened` in all listeners. No synchronization is performed here, since the two calling methods are synchronized.

    - #### postEdit

          public void postEdit(UndoableEdit e)

      DEADLOCK WARNING: Calling this method may call `undoableEditHappened` in all listeners. It is unwise to call this method from one of its listeners.

    - #### getUpdateLevel

          public int getUpdateLevel()

      Returns the update level value.
      Returns:
        an integer representing the update level

    - #### beginUpdate

          public void beginUpdate()

    - #### createCompoundEdit

          protected CompoundEdit createCompoundEdit()

      Called only from `beginUpdate`. Exposed here for subclasses' use.

    - #### endUpdate

          public void endUpdate()

      DEADLOCK WARNING: Calling this method may call `undoableEditHappened` in all listeners. It is unwise to call this method from one of its listeners.

    - #### toString

          public String toString()

      Returns a string that displays and identifies this object's properties.
      Overrides:
        `toString` in class `Object`
      Returns:
        a `String` representation of this object

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.