2012-03-02 45 views
1

我正在創建一個基本的Swing應用程序。我有jTextPane和一個按鈕。如果用戶選擇jTextPane中的文本並按下該按鈕,則它將粗選所選文本。這是通過修改StyleDocument完成的。使用StyledDocument設置jTextPane的樣式和文本

我希望能夠臨時保存樣式文本,關閉以前的JTextPane,開闢一個新的的JTextPane,並填充關閉它基於先前儲存的樣式文本。 jTextPane在構造函數中需要StyleDocument,但是當我嘗試使用舊的StyleDocument構造一個新的jTextPane時,它看起來沒有工作。我想這是因爲我只是從前面的jTextPane StyleDocument傳入引用,最終被刪除。

有什麼方法可以複製或克隆StyleDocument?我知道它是一個接口,但它是否使用DefaultStyledDocument?有沒有更好的方法來做到這一點?

回答

2

文檔可以被新的實例替換,例如,當你設置EditorKit或者調用setText()(setText在某些情況下重新創建文檔)。

因此,在完成所有準備工作後,將引用存儲到舊文檔調用setDocument(oldDoc)時。

或者你可以存儲舊的內容,並將其設置回用這樣的http://java-sl.com/editor_kit_tutorial.html

閱讀關於Reader和從「示例」部分作家和使用的代碼。

+0

+1'(setText在某些情況下重新創建文檔)'然後請'文檔'克隆'Document myNewDocument = oldDocument'或者還有別的嗎? – mKorbel 2012-03-02 07:28:05

+0

當setText被調用時,我們不需要舊文檔的內容。所以只需創建一個新實例。唯一的辦法是移動DocumentListeners和屬性。 – StanislavL 2012-03-02 07:36:29

+0

現在這些東西讓我感覺很好,謝謝 – mKorbel 2012-03-02 07:38:34

相關問題