2010-03-17 79 views
3

因为我们已经将我们的Java版本从6u5升级到6u18(该应用程序通过WinXP运行),所以我们在基于swing的应用程序中遇到问题。奇怪的摇摆重量级和轻量级混合问题

我们的应用程序包含一个驻留在JFrame中的Canvas对象。应用程序在画布上绘制东西。

每当我们在画布上拖动一个轻量级的swing对象(弹出窗口或其他框架)时,它就会有刷新问题。 眨眼 - 变黑。该问题仅在我们将摆动组件从画布上移开并再次单击后才能解决。

我们认为这个问题与画布是重量级物体的事实有关。 而且我们知道在重量级和轻量级对象的混合问题上,新版本的java已经发生了变化。

一些更多的细节: 1)我们的问题在java 6u14和6u16中重现。 2)一切工作正常在Java 6u5。

另一个奇怪的事情: 我们有两种类型的站运行我们的应用程序。 第一种类型有ATI FireGL7100 PCI-E图形卡。第二种是Matrox G450 PCI图形卡。 问题在任何Java版本的Matrox基站上都不会重现。

还有一件事: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6829858 - 看起来类似于我们的问题。

我们的问题很熟悉吗? 你有什么建议(解决方法,理念在显卡方面的差别是如何连接到这个问题)

希望我很清楚, 约阿夫

回答

2

我们有问题瓦特/ HW/LW从6u14 +混合(修补程序打破了一切都在14)。我们的问题出现在第三方图书馆(JIDE),他们最终解决了问题。

我的建议是尽可能避免硬件。如果完成对比,你可以从LW中获得非常不错的表现。你在画什么需要成为HW?

2

我不知道这是否与其他人有关,但我们已经找到了解决方法/解决方案。

我们已经将系统属性sun.awt.noerasebackground和sun.java2d.noddraw都设置为true。这消除了我们的问题。

唯一的问题是,我不确定设置这些系统属性可能会产生哪些其他问题。