损坏的Java Swing窗口

Vin*_*ent 5 java windows swing

我编写的Java swing GUI程序的一个用户遇到的问题是主旋转窗口无法正确呈现到屏幕并且GUI冻结.这是屏幕截图(顶部)和应该显示的屏幕截图(底部)的比较:

替代文字http://www.shapecollage.com/temp/SwingCorruption.jpg

他使用Java 1.6.0_13运行Windows XP SP3,他的显卡是带有双显示器设置的ATI X1600.

该程序(如果您想自己测试)位于:
www.shapecollage.com/download.html

我有几千个用户,没有其他人报告此错误,我已在Windows XP上彻底测试过它.任何计算都是在与常规GUI线程不同的线程中完成的,并且程序可以在许多其他计算机上运行,​​所以我认为这不是程序本身的问题,而是他的特定设置有问题.

有没有人在系统之前看到过这种类型的错误,或者对这个用户的系统可能出现什么问题有任何建议会导致这样的问题?

谢谢,
文森特

Joa*_*uer 6

也许Java与图形驱动程序和/或图形硬件之间存在有问题的交互.

几个标志可以影响Java绘制到屏幕的方式.

您可能希望尝试使用以下任何标志启动应用程序:

  • -Dsun.java2d.opengl=true
  • -Dsun.java2d.d3d=false
  • -Dsun.java2d.noddraw=true

这些标志切换OpenGL管道,转向使用Direct3D并分别禁用DirectDraw.

如果其中任何一个解决了你的问题,那么你可能会考虑用sun提交一个Bug,因为那时它可能不是那里有问题的应用程序.


小智 2

我们遇到了非常相似的问题,通过更新图形驱动程序解决了这个问题。问题可能来自双显示器设置,导致 VRAM 损坏,因此您的客户可能会尝试是否仅使用单个显示器可以更好地工作。虽然您可能认为 Java 不会非常依赖硬件,但我们的图形密集型应用程序在通过特定投影仪类型运行时总是会出现 BSOD...