2009-05-11 64 views
5

我正在处理一些Swing应用程序(当前运行在Java 1.6 update 11上),它有一些间歇性的刷新问题(例如存在工件等)。这只发生在我们的应用程序的一些用户而不是其他人。在Java 1.6中使用Java Swing应用程序绘画的问题

经过一番研究,我发现将属性sun.java2d.d3d设置为false可能会有所帮助,事实上,它对我们的一个用户有所帮助。

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

我的基本问题如下:

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

换句话说,最好是简单地关掉这个属性,还是只影响某些显示卡,在这些显卡中,最新的驱动程序更新会修复?

+0

在VMWare内部运行Java时,经常会发生此问题。 – user3553031 2014-07-21 19:39:42

回答

2

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

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

+0

首先遇到问题的用户有ATI Radeon XPress 200,但我没有检查他们是否有最新的驱动程序。 该应用程序是一个漂亮的“标准”Swing应用程序,即没有3D操作或“不寻常”的绘画操作。 – Avrom 2009-05-11 19:18:40

+0

有人会认为它会自动关闭不支持的视频卡,假设可能。 – Avrom 2009-05-11 19:21:02

1

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