Получение удаленного текста из текстового компонента Java
-
09-09-2019 - |
Вопрос
A JTextComponent
позволяет вам добавить DocumentListener
к его Document
, который сообщит вам, когда текст был добавлен или удален, а также смещение и длину изменения.Однако в нем не будет указано, каков был текст изменения.
Это не представляет большой проблемы при добавлении текста, так как вы можете использовать смещение и длину для поиска добавленного текста.Однако вы не можете использовать его для поиска удаленного текста, так как текст уже исчез.
Кто-нибудь сталкивался с этой проблемой раньше?Как вы можете получить строку, которая была удалена из документа?
Решение
Установите DocumentFilter
в AbstractDocument
.
(КСТАТИ:В Swing обычно лучше всего сразу перейти к модели (в данном случае document).)
Другие советы
Каждый раз, когда добавляется текст, сохраняйте документ в памяти.Каждый раз, когда текст удаляется, сравнивайте документ с тем, что было сохранено последним, чтобы определить, что было удалено.
сохраните исходную версию текста в свойстве, где вы все еще можете выполнить "трюк со смещением длины", чтобы получить удаленную строку.должно получиться нормально