5

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

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

现在其他一些用户正在抱怨这个问题,我正在考虑将属性设置false为所有用户。

我的基本问题如下:

这究竟是什么原因?是显卡吗?是司机吗?它是来自 Sun 的错误吗?(如http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6635462)这三者的结合?

换句话说,最好简单地关闭这个属性,还是它只影响某些显卡,更新到最新的驱动程序可以修复?

4

2 回答 2

2

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

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

于 2009-05-11T15:55:29.293 回答
1

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

于 2009-05-11T18:52:41.500 回答