Получить всю историю изменений от JTextArea
Есть возможность получить список изменений в JTextArea
по-простому?
Я имею в виду, что я хочу получить весь текст, который был напечатан / показан в JTextArea
что-то вроде ReDo/UnDo. Есть возможность вернуться, как "CTRL + Z"
2 ответа
В те дни я использовал UndoManager для управления изменениями текстовых компонентов.
Вы можете найти API здесь: Oracle JavaDoc UndoManager
И пример использования здесь: пример Java2s UndoManager
НТН
Обновление:
UndoManager расширяет CompoundEdit, который объявляет защищенные векторные "правки" объектов UndoableEdit.
Вы можете получить доступ к этому вектору для внесения изменений в список, написав класс, который расширяет UndoManager и предоставляет общедоступный список методов получения getChangesVecor.
Если вы после изменений в тексте области, вы можете попробовать одно из следующих:
Добавьте некоторую форму слушателя к JTextArea, и каждый раз при изменении текста сохраняйте информацию в виде String в arrayList, хотя, если вы ожидаете чего-то большего, чем небольшое количество изменений, это решение, вероятно, будет крайне неэффективным.
Вероятно, лучший вариант, хранить информацию в текстовом файле / базе данных. Это создает постоянную запись / журнал информации, и затем может быть прочитано будущими программами при необходимости.
Удачи!