2013-10-10 34 views
0

我想從另一個類向JTextPane添加字符串,但它不會更新JTextPane。我試過線程,現在我一直傾向於一個documentlistener或文件過濾器。很顯然,DocumentFilter用於更新JTextPane文檔,但是可以從另一個類執行此操作,並在添加字符串時更新它? 我用盡沿着線的東西:從另一個類向JTextPane添加文本

textPane.insertString(FilterBypass fb, int offs,String str, AttributeSet a) 

但NetBeans的犯規識別參數。謝謝你的幫助。

*一些澄清,通過更新我的意思是它實際上顯示JTextPane上的更改。

回答

0

如果從不同的線程做你需要使用的invokeLater從SwingUtilities的

public void updateTextPane(final String text){ 
    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      updateTextPane(text); 
     } 
    }); 
} 

記得定義文本作爲最終,這不是一個關於字符串是不可變的BTW

1

的Ive問題傾向於documentlistener或文檔過濾器

DocumentListner會在您對Docum進行更改時通知您ENT。 DocumentFilter允許您在文檔更改前過濾文本。

伊夫試圖沿着線的東西:

textPane.insertString(FilterBypass fb, int offs,String str, AttributeSet a) 

你不應該直接訪問的DocumentFilter。當您調用Document上的insertString()方法時,DocumentFilter訪問文檔。

相反,你應該只調用文件的insertString()方法:

textPane.getDocument().insertString(int offs,String str, AttributeSet a) 
+0

所以,如果我調用該文件的insertString()方法將它添加一個字符串到文檔,也更新的JTextPane以及?謝謝 –

相關問題