2010-02-24 21 views
5

我正在尋找一種高效的Swing Java組件,我可以將其插入到我的應用程序UI中。我已經嘗試過使用Swing中的類,例如JTextArea,但沒有用處;他們根本不夠高性能,並且存在任何削弱的缺點。另外,如果它具有標準的控制檯功能(如滾動鎖定,清除控制檯,顏色等),它會很好。尋找高效的基於Java Swing的控制檯

編輯:忘了說,這個控制檯會有很多調試信息流入它,它需要完全滾動。

乾杯,
克里斯

+0

什麼是癱瘓的弊端/性能問題,你」重新體驗? – Adamski 2010-02-24 21:06:57

+0

速度問題,大多數。 JTextArea組件看起來並沒有被設計爲如此快速地接受如此大量的文本,所以你會放慢速度。另外,它會過早刪除文本,並且不允許用戶在輸入輸入時進行滾動(afaik)。其效果是,當行數保持不變時,您只會看到文本閃爍。 – 2010-02-24 21:15:40

+0

我認爲你應該用你真正想要的功能來代替「高效」這個詞。 – 2010-02-24 21:17:19

回答

6

我看不出有什麼不妥使用的JTextPane。它支持您可以在將每段文本添加到控制檯時指定的屬性。清除它也顯然是一件不容易的事情。當添加到滾動窗格時,它也支持滾動。

您可以使用Smart Scrolling添加滾動鎖定。

此外,它會刪除文本太早,

不知道是什麼意思的文字永遠不會被刪除,除非你專門從文件中刪除。

不允許用戶滾動,而 輸入正在輸入(afaik)。 的效果是,您只會看到文字 閃爍,而行 的行數保持不變。

默認情況下,文本在文本附加到文檔時自動滾動,假定代碼在EDT上執行。這個滾動可以通過上面鏈接提供的例子來控制。

編輯:

但我還是喜歡一個庫解決方案

我不知道從 不同流

未來任何

自動colourise文本

Message Console可能會給你一些想法。

(即,檢測在 線[錯誤]前綴)的基礎上 此)和colourise線

這是很容易通過將某個DocumentFilter到文本窗格的文獻進行。隨着文本插入到文檔中,您可以添加屬性。

+0

我設法解決了這個問題,事實證明我在我的測試包中使用了一個類,它沒有導致我產生效果的變化,讓我覺得JTextArea只是吸了:)所以,現在我有一個快速工作的控制檯,但我仍然喜歡在控制檯窗口周圍使用酷炫按鈕的庫解決方案來做不同的事情,並自動調色來自不同流的文本(使用編解碼器來指示錯誤(例如,在一行上檢測[錯誤]前綴)和基於此的色彩線) - 是否存在這樣的事情? :) – 2010-02-25 23:46:34

+0

看起來像上面的鏈接,標記爲「發佈」已損壞。 – JeffHeaton 2013-06-08 11:31:20

+0

@JeffHeaton,謝謝,我稍微改變了答案來提及一個新話題。 – camickr 2013-06-08 15:17:09