2011-06-21 33 views
3

我試圖提供慢速操作的進度報告,文本形式是從屏幕底部向上滾動,詳細介紹發生了什麼 - 這是一個影響你可能在視頻遊戲中加載地圖,建立網絡連接等時看過幾次。玻璃面板控制檯樣式文本顯示的組件

玻璃窗格似乎是獲得文字覆蓋的方式,我有很多工作。我的問題正是用於實際文本顯示的組件。

JTextArea可以顯示文本,但據我所知,它只能從屏幕頂部向下 - 是否有辦法讓它從屏幕底部向上滾動文本?通過對比,JLabel可以將第一行文本對齊到屏幕底部,甚至可以在該行上添加附加文本,但是當我添加更多由換行符分隔的行時,它似乎甚至會在吞下它們之後調用repaint並驗證。有沒有辦法讓它與新文本一起滾動?

或者我應該使用另一個組件嗎?

回答

2

JLabel會是最簡單的。否則,你將不得不重寫paintComponent來做任何想象動畫文本移動的動作。

+1

對,事實證明JLabel工作正常,一旦我意識到需要考慮到Swing將多個進度更新批量處理爲單個調用,並且文本需要以HTML標記開頭才能使用HTML換行符。 – rwallace

3

我非常喜歡JXLayer,因爲這些效果是通過Swing組件分層的。 JXLayer計劃在Java 7之列。不幸的是,Java.net一直在進行移動,失去了作者所擁有的所有優秀內容。網絡上還有其他一些很好的資源around (Java 7 required for this one)。我使用JXLayer爲面板提供了一個忙碌狀態,具有網狀微調和灰色外觀。

另一種替代方案(不像JXLayer恕我直言)有MigLayout具有絕對定位,這可能比GlassPane更容易。