2009-02-26 4 views
4

Un JTextComponent vous permet d'ajouter un DocumentListener à son Document, qui vous indiquera quand du texte a été ajouté ou supprimé, ainsi que le décalage et la longueur de la modification. Cependant, il ne vous dira pas quel était le texte du changement.Obtention du texte supprimé à partir d'un composant de texte Java

Ce n'est pas vraiment un problème pour l'ajout de texte, car vous pouvez utiliser le décalage et la longueur pour trouver le texte ajouté. Cependant, vous ne pouvez pas l'utiliser pour trouver le texte supprimé, car le texte est déjà parti.

Quelqu'un at-il déjà rencontré ce problème? Comment pouvez-vous obtenir la chaîne qui a été supprimée d'un document?

Répondre

4

Installez un DocumentFilter dans le AbstractDocument.

(BTW: In Swing, il est généralement préférable d'aller directement au modèle (dans ce document de cas).)

0

Chaque fois que du texte est ajouté, stockez le document en mémoire. Chaque fois que du texte est supprimé, comparez le document à ce qui a été stocké en dernier pour déterminer ce qui a été supprimé.

+0

exactement ce que je suggère - juste un peu plus lent que vous ;-) – Gambrinus

0

stockez la version originale du texte dans une propriété où vous pouvez toujours faire le "offset-length-trick" pour obtenir la chaîne supprimée. devrait faire bien

Questions connexes