Java 1.6 Swing 应用程序中的绘制刷新问题

问题描述 投票:0回答:2

我正在开发一个 Swing 应用程序(当前在 Java 1.6 update 11 上运行),该应用程序存在一些间歇性绘制刷新问题(例如,存在伪影等)。这种情况只会发生在我们应用程序的某些用户身上,而不会发生在其他用户身上。

经过一些研究,我发现将属性

sun.java2d.d3d
设置为
false
可能会有所帮助,事实上,它对我们的一位用户有所帮助。

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

false

我的基本问题如下:

这到底是什么原因呢?是视频卡吗?是司机吗?这是 Sun 的错误吗(例如 JDK-6635462 : D3D: REGRESSION: XOR 渲染非常慢)?三者结合?

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

java swing paint
2个回答
2
投票

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

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.