Windows 7 更新 KB4034664(2017 年 8 月)后在多个屏幕上显示问题

Display issues on multiple screens after Windows 7 Update KB4034664 (August 2017)

我们应用程序的用户一直遇到他们的 Swing GUI 无法正确绘制的问题。

所有遇到问题的用户之间的共同点 link 是他们最近应用了 Windows 更新。用户报告对话框在某些显示器上正确绘制,但在其他显示器上不正确。

我们遇到的种类问题的一个例子*:

用户还报告对话框只显示一个框架,否则是透明的。如果 UI 线程被阻塞,您会遇到同样的问题。

可能是什么问题?


*我不能 post 我们实际应用程序的屏幕截图,因为它包含敏感信息

更新: 此问题已在更新 KB4039884.

中修复

这似乎是由最近的补丁引起的一个相当广泛的问题。不限于 Java:

It seems, that Microsoft’s Update KB4034664 (and KB4034679) for Windows 7 and Windows Server is causing display issues with several applications on a second screen.

Born City, Computer World, and Microsoft themselves 报道:

If a machine has more than one monitor connected and the screen numbering is not in sequence, some applications will experience rendering issues.

回滚补丁应该可以解决问题。这是一个安全更新(上面的链接详细说明了包含的内容),因此如果您特别厌恶风险,您可能不想这样做。

Microsoft 将解决方法列为:

  1. Enable Desktop Composition (needs graphics card support).
  2. Make sure that the main monitor is on the top left in the monitor layout.

您也可以尝试切换到单一显示器设置,或对显示器配置进行其他更改(控制面板 > 显示 > 更改显示设置)。一些报告推测将哪个显示器设置为您的 'main display' 可能会有所不同。

您可能还想尝试以下标志:-Dsun.noddraw=true