Bonjour,
J'ai un JTextPane lié avec un UndoManager. J'ai implémenté le UndoManager de manière à ce qu'il soit lié avec les actions claviers:
CTRL+Z --> undo
CTRL+Y --> redo
A côté de cela, j'ai 2 boutons dans une barre d'outils de la fenêtre principale qui exécutent également les actions "undo" et "redo".
Jusque là, tout marche correctement.
Récemment j'ai ajouté dans le menu "Edition", 2 sous-menus pour "undo" et "redo". Et là, j'ai un problème.
Dans la fenêtre principale, les boutons de la barre d'outils et les sous-menus (undo et redo) du menu "Edition" sont liés aux même actions. C'est-à-dire, si je fais un "undo" depuis le bouton où depuis le menu, la même action est lancé dans le "controleur" principale qui transmet cette action jusqu'au UndoManager du JTextPane.
Le problème est que, lorsque je clique sur les boutons de la barre d'outils, les actions undo (ou redo) sont exécutées correctement, mais pas depuis le menu "Edition".
Lorsque que je fais un "undo" depuis le menu Edition, l'action arrive jusqu'au UndoManager du JTextPane, il fait bien l'action undo()...mais dans ma JTextPane, le texte ne change pas...il n'y a aucun changement dans ma JTextPane...
J'ai un peu cherché et j'ai vu que lorsque je clique sur le bouton de la barre d'outils, la méthode getUndoPresentationName() me retourne l'action "Défaire ajout" (ce qui est correct) alors que lorsque je fais depuis le menu Edition, getUndoPresentationName() me retourne à chaque fois "modification de style", et du coup, mon dernier ajout n'est jamais annulé!
Est-ce que quelqu'un aurait déjà eu affaire à un problème de ce genre? ou aurait une idée, une piste?
Merci bcp pour votre aide
Partager