【问题标题】:Getting the removed text from a Java text component从 Java 文本组件中获取删除的文本
【发布时间】:2009-02-26 15:14:36
【问题描述】:
JTextComponent 允许您将DocumentListener 添加到其Document,这将告诉您何时添加或删除文本,以及更改的偏移量和长度。但是,它不会告诉您更改的文本是什么。
这对于文本添加来说不是什么大问题,因为您可以使用偏移量和长度来查找添加的文本。但是,您无法使用它来查找已删除的文本,因为该文本已经消失了。
以前有人遇到过这个问题吗?如何获取从文档中删除的字符串?
【问题讨论】:
标签:
java
swing
text
jtextcomponent
【解决方案1】:
将DocumentFilter 安装到AbstractDocument。
(顺便说一句:在 Swing 中,通常最好直接进入模型(在本例中为文档)。)
【解决方案2】:
每次添加文本时,将文档存储在内存中。每次删除文本时,将文档与上次存储的内容进行比较以确定删除的内容。
【解决方案3】:
将文本的原始版本存储在一个属性中,您仍然可以在其中执行“偏移长度技巧”来获取删除的字符串。应该没问题