【问题标题】:Component for glass pane console-style text display用于玻璃窗格控制台样式文本显示的组件
【发布时间】:2011-06-21 16:56:10
【问题描述】:

我正在尝试为缓慢的操作提供进度报告,其形式为从屏幕底部向上滚动的文本,其中包含有关正在发生的事情的详细信息 - 您可能在视频游戏中见过几次这种效果当他们加载地图、建立网络连接等时。

玻璃窗格似乎是获得文本覆盖的方式,我已经做了很多工作。我的问题正是要用于实际文本显示的组件。

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

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

或者我应该使用其他组件来代替吗?

【问题讨论】:

    标签: java swing jlabel jtextarea


    【解决方案1】:

    我真的很喜欢 JXLayer 在 Swing 组件上分层的效果。 JXLayer 曾一度计划包含在Java 7 中。不幸的是,Java.net 上的移动丢失了作者拥有的所有好内容。网络上还有其他一些很棒的资源around (Java 7 required for this one)。我使用 JXLayer 为面板提供忙碌状态,具有类似 web 的微调器和灰色外观。

    另一种选择(不如 JXLayer 恕我直言)是MigLayout 具有绝对定位,这可能比 GlassPane 更容易。

    【讨论】:

      【解决方案2】:

      JLabel 是最简单的。否则你将不得不覆盖 paintComponent 来做任何花哨的事情,比如动画文本移动。

      【讨论】:

      • 对,事实证明 JLabel 毕竟工作得很好,一旦我意识到需要考虑到 Swing 将多个进度更新批处理到一个调用中并且文本需要以 HTML 标记开头使用 HTML 换行符。
      猜你喜欢
      • 1970-01-01
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多