¿Cómo implemento un sencillo deshacer / rehacer para acciones en java?

He creado un editor XML y estoy atascado en la última fase: agregando la funcionalidad de deshacer / rehacer.

Solo tengo que agregar deshacer / rehacer para cuando los usuarios agreguen elementos, atributos o texto a JTree.

Todavía soy bastante nuevo en esto, pero hoy en la escuela intenté (sin éxito) crear dos objetos de pila [] llamados "deshacer y rehacer" y agregar las acciones realizadas en ellos.

Por ejemplo, tengo:

Action AddElement() {

// some code
public void actionPerformed(ActionEvent e) {

                    performElementAction();
                }
}

the performElementAction solo agrega un elemento al JTree.

Quiero agregar una forma de agregar esta acción realizada a mi pila de deshacer. ¿hay una forma sencilla de deshacer.push (la acción completa realizada) o algo así?

Lo siento por sonar como un malo, pero eso es lo que soy :(

Respuestas a la pregunta(5)

Su respuesta a la pregunta