我正在开发一个 Swing 应用程序(目前在 Java 1.6 update 11 上运行),它有一些间歇性的绘画刷新问题(例如,有瑕疵等)。这只会发生在我们应用程序的某些用户身上,而不会发生在其他用户身上。
经过一些研究,我发现将属性 sun.java2d.d3d
设置为 false
可能会有所帮助,事实上,它对我们的一位用户有所帮助。
既然其他一些用户提示这个问题,我正在考虑为所有用户将该属性设置为 false
。
我的基本问题如下:
这到底是什么原因呢?是显卡吗?是司机吗?这是Sun的错误吗? (例如 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6635462)三者的结合?
换句话说,最好是简单地关闭此属性,还是它只影响更新到最新驱动程序可以修复的某些视频卡?
最佳答案
Java 在 R6 更新 10 中引入了一种基于 Direct3D 渲染图形的管道。根据发布说明here它仅支持 NVidia 和 ATI 卡,这意味着任何不使用这些卡的人都可能遇到问题。由于这是最近的一项创新,我建议任何使用这些卡的旧驱动程序的人也可能会遇到问题。升级视频驱动程序可能会解决第一种情况,但不会解决最后一种情况。
如果将 sun.java2d.d3d 设置为 false,可能发生的最坏情况是某些用户无法达到他们理论上可以达到的性能。您必须权衡这是否比您目前看到的问题更可取。
关于java - Java 1.6 中的 Java Swing App 绘画问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/848481/