我正在尝试为慢速操作提供进度报告,从屏幕底部向上滚动文字,详细说明正在发生的事情 - 这可能是您在视频游戏中看过几次的效果当他们加载地图,建立网络连接等时。
玻璃窗格似乎是获得文本叠加的方式,我工作的很多。我的问题正是用于实际文本显示的组件。
JTextArea可以显示文字,但据我所见,它只能从屏幕顶部向下显示 - 有没有办法让它从屏幕底部向上滚动文字?
相比之下,JLabel可以将第一行文本对齐到屏幕底部,甚至可以在该行上添加附加文本,但是当我添加由换行符分隔的更多行时,即使在调用之后它也似乎吞没了它们重新粉刷并验证。有没有办法让它用新文本向上滚动?或者我应该使用另一个组件吗?
答案 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
以执行任何动画,例如动画文本移动。