2009-02-26 2 views
4

A JTextComponent позволяет добавить DocumentListener в его Document, в котором будет указано, когда текст был добавлен или удален, а также смещение и длина изменения. Однако он не скажет вам, что такое текст изменения.Получение удалённого текста из текстового компонента Java

Это не большая проблема для добавления текста, так как вы можете использовать смещение и длину для поиска добавленного текста. Однако вы не можете использовать его, чтобы найти удаленный текст, поскольку текст уже ушел.

Неужели кто-нибудь сталкивался с этой проблемой раньше? Как вы можете получить строку, которая была удалена из документа?

ответ

4

Установите DocumentFilter в AbstractDocument.

(КСТАТИ: В Swing обычно лучше всего идти прямо к модели (в данном случае документа).)

0

Каждый раз, когда текст добавляется, храните документ в памяти. Каждый раз, когда текст удаляется, сравните документ с тем, что было в последний раз сохранено, чтобы определить, что было удалено.

+0

именно то, что я предложил - только немного медленнее, чем вы ;-) – Gambrinus

0

Сохраните исходную версию текста в свойстве, где вы все равно можете выполнить «смещение-длина-трюк», чтобы получить удаленную строку. следует делать штраф