2016-01-06 3 views

Répondre

2

Je ne l'ai jamais essayé, mais je suppose que vous pouvez créer un UndoManager personnalisé.

Vous devrez remplacer la méthode undoableEditHappend(...) d'ignorer un changement d'attribut:

@Override 
public void undoableEditHappened(UndoableEditEvent e) 
{ 
    // Check for an attribute change 

    AbstractDocument.DefaultDocumentEvent event = 
     (AbstractDocument.DefaultDocumentEvent)e.getEdit(); 

    if (event.getType().equals(DocumentEvent.EventType.CHANGE)) 
     return 
    else 
     super.undoableEditHappened(e); 
} 
+0

Est-ce que vous connaissez comment obtenir le texte qui a été ajouté/retiré? – ThePrimedTNT

+0

Non, j'ai essayé plusieurs fois, mais je n'ai jamais pu obtenir cette information. – camickr

+0

J'effectue une syntaxe simple higlighting dans un JTextPane et le manque d'Undo/Redo intégré était ennuyeux. Heureusement, je suis tombé sur UndoManager, mais malheureusement la mise en évidence de la syntaxe a produit de nombreuses modifications insignifiantes qui auraient rendu le UndoManager inutile sans cette excellente réponse. Merci! – ricovox