Java 1.6中Java Swing App中的绘画问题

我正在研究一个Swing应用程序(目前运行在Java 1.6更新11上),它有一些间歇性的油漆刷新问题(例如有工件等)。 这只发生在我们应用程序的某些用户而不是其他用户。

在做了一些研究后,我发现将属性sun.java2d.d3d设置为false可能有所帮助,事实上,它对我们的一个用户有帮助。

现在其他一些用户都抱怨这个问题,我想把所有用户的属性设置为false

我的基本问题如下:

究竟是什么原因造成的? 是video卡吗? 是司机吗? 这是Sun的错误吗? (例如http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6635462)三者的组合?

换句话说,最好是简单地关闭此属性,还是只影响某些更新到最新驱动程序的video卡?

Java在R6中引入了更新10管道,该管道基于Direct3D呈现图形。 根据此处的发布说明,它仅支持NVidia和ATI卡,这意味着任何不使用这些卡的人都可能遇到问题。 由于这是最近的创新,我建议任何使用旧驱动程序的人都可能遇到问题。 升级video驱动程序可能会修复第一种情况,但不会修复最后一种情况。

如果将sun.java2d.d3d设置为false,则可能发生的最坏情况是某些用户无法实现理论上的性能。 您必须平衡这是否比您目前看到的问题更可取。

是否所有绘画和模型更改操作都在EDT上执行(例如,更改TableModel等)?