【问题标题】:scroll bar problems in java Layered Panesjava分层窗格中的滚动条问题
【发布时间】:2010-11-26 10:23:14
【问题描述】:

我一直在尝试构建这个小型 Java 应用程序。我发现用java设计UI非常困难,看起来很简单的任务变得复杂,所有这些奇怪的错误行为都会发生。在我的应用程序中,我创建了一个包含两层的 JLayeredPane。一个在另一个之上,它们都包含滚动条。 下面是对这两层的解释:

第 1 层: 类似于滚动窗格的内容中的一个非常大的图像。图片是可滚动的。

第 2 层: 一个 graphics2d 对象,这个对象绘制一个图像。一旦图像达到一定的长度,图层就会获得一个滚动窗格,随着时间的推移随着绘图而前进。

我想连接两个层。我希望第二层更新第一层上的滚动条。这意味着一旦达到一定长度,两个滚动条将一起前进。当我尝试这样做时,两个滚动条确实会前进,但是(!)会发生这种奇怪的闪烁。我不明白闪烁的原因是什么。有没有其他方法可以以简单的方式实现这一点?我必须在第一层之上有第二层(在图像顶部绘图)

由于我无法打开一个特别的帖子来感谢这个论坛的好人,我会在这里做。谢谢你,你帮了大忙。我希望这个问题也能解决。

【问题讨论】:

  • 能否解决问题?现在,您有 2 个图层,每个图层的行为类似于 JScrollPane。而是使用固定的 2 层,但将 JLayerdPane 放在 JScrollPane 中并让它处理滚动。

标签: java user-interface scrollbar


【解决方案1】:

如果没有看到您的代码,很难猜出问题出在哪里。可能你得到的paint() 事件比你真正需要的要多。

您也可以尝试使用 JXLayer (http://weblogs.java.net/blog/alexfromsun/archive/2008/06/the_new_jxlayer.html) 来显示您的 graphics2d 图层。

【讨论】:

    【解决方案2】:

    听起来您每次都以某种昂贵的方式重新绘制整个组件 - 您可以尝试绘制到 BufferedImage 以保存图像,而不是每次都重新生成它。或者您可以尝试弄乱如何处理重绘。我建议这个article 和这个page on Sun's website - 两者都讨论了高性能绘画实践。

    【讨论】:

      猜你喜欢
      • 2019-12-02
      • 1970-01-01
      • 2014-01-23
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多