2013-10-14 49 views
2

有一種可能性,在簡單的方法來獲得JTextArea更改列表?獲取變化的整個歷史從JTextArea中

我的意思是我要檢索的是所有鍵入的文本/顯示,JTextArea,像重做/撤消。需要備份,如「CTRL + Z」的可能性

+1

你能更好的定義'變化'嗎? – Levenal

+1

據我所知,沒有API處理,你必須自己保留記錄。存儲在一些臨時文件或數據庫 –

+0

附加一個專門的TextListener,只記錄TextEvent的將是非常簡單的。 TextEvent日誌是否足夠? –

回答

6

回到使用UndoManager管理擺動文本組件更改的日子。

你可以在這裏找到API:Oracle JavaDoc UndoManager

這裏使用例子:Java2s example UndoManager

HTH


更新

的UndoManager延伸CompoundEdi牛逼這裏聲明瞭一個受保護的矢量「編輯」 UndoableEdit中的對象。

你可以讓訪問該矢量,上市變化,通過編寫擴展的UndoManager和提供公共的getter梅託德列表getChangesVecor類。

+1

textcomp是一個JTextArea的可能性,我想有一個重做聽的JTextArea但有ReDo/UnDo按鈕。 –

+0

對不起,我更新了answaer –

1

如果你是在該地區的文本改變後,你可以嘗試以下方法之一:

添加某種形式收聽到JTextArea中,每次文本更改將信息作爲字符串存儲在數組列表中,但如果您希望進行的操作不止是少量更改,則此解決方案可能效率非常低。

也許是更好的選擇,存儲在一個文本文件/數據庫中的信息。這將創建信息的永久記錄/日誌,然後可以根據需要在將來的程序中讀取。

祝你好運!