I. Présentation▲
UndoabeJText est une API Java permettant d'implémenter très facilement les fonctionnalités undo et redo sur des JTextComponents.
II. Implémenter les fonctionnalités undo et redo sur un JTextComponent▲
Pour implémenter les fonctionnalités undo/redo sur un JTextComponent il suffit de récupérer l'instance de classe UndoableJTextManager et de passer le JTextComponent à la méthode makesUndoable().
Note importante (versions < 1.0.2 uniquement) :
Dans le cas où vous affecteriez un Document au JTextComponent, vous devez impérativement le faire avant de passer le JTextComponent à la méthode makesUndoable().
La méthode makesUndoable() renvoie un objet UndoMapping qui permet notamment de récupérer les Actions associés aux événements undo et redo.
III. Personnaliser les raccourcis clavier▲
Par défaut, des raccourcis clavier sont créés pour les actions undo et redo (respectivement Ctrl+Z et Ctrl+Y). Vous pouvez spécifier vos propres raccourcis en passant à la méthode makesUndoable() les KeyStrokes associés.
Pour ne pas créer de raccourci clavier il vous suffit de spécifier la valeur null en guise de KeyStroke.
IV. Ecouter les évenements undo et redo avec un UndoListener▲
L'interface UndoListener permet d'exécuter du code lors du déclenchement d'une Action undo/redo. Les UndoListeners doivent être enregistrés auprès d'un objet UndoMapping, un UndoListener peut également être spécifié lors de l'appel à la méthode makesUndoable(). Le code devant être exécuté doit être écrit dans la méthode undoPerformed() où un objet UndoEvent permet de savoir s'il sagit d'un évènement undo ou redo.