用于玻璃窗格控制台式文本显示的组件

时间:2011-06-21 16:56:10

标签: java swing jlabel jtextarea

我正在尝试为慢速操作提供进度报告,从屏幕底部向上滚动文字,详细说明正在发生的事情 - 这可能是您在视频游戏中看过几次的效果当他们加载地图,建立网络连接等时。

玻璃窗格似乎是获得文本叠加的方式,我工作的很多。我的问题正是用于实际文本显示的组件。

JTextArea可以显示文字,但据我所见,它只能从屏幕顶部向下显示 - 有没有办法让它从屏幕底部向上滚动文字?

相比之下,JLabel可以将第一行文本对齐到屏幕底部,甚至可以在该行上添加附加文本,但是当我添加由换行符分隔的更多行时,即使在调用之后它也似乎吞没了它们重新粉刷并验证。有没有办法让它用新文本向上滚动?

或者我应该使用另一个组件吗?

2 个答案:

答案 0 :(得分:3)

我非常喜欢JXLayer在Swing组件上分层的效果。 JXLayer曾被安排加入Java 7。不幸的是,Java.net上的移动已经失去了作者所拥有的所有好内容。网上还有一些其他很棒的资源around (Java 7 required for this one)。我使用JXLayer为面板提供一个繁忙的状态,具有类似Web的旋转器和灰色外观。

另一个替代方案(不像JXLayer恕我直言)是MigLayout具有绝对定位,这可能比GlassPane更容易。

答案 1 :(得分:2)

JLabel将是最简单的。否则,您必须覆盖paintComponent以执行任何动画,例如动画文本移动。