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

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

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

我们看到的问题的一个例子*:

申请提出问题

用户还报告仅显示框架的对话框,否则是透明的。 如果UI线程被阻止,你会看到同样的问题。

可能是什么问题呢?


*我无法发布实际应用程序的屏幕截图,因为它包含敏感信息

更新:此问题已在更新KB4039884中得到修复。


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

看来,用于Windows 7和Windows Server的Microsoft更新KB4034664 (和KB4034679 )导致在第二个屏幕上显示多个应用程序的问题。

Born City , Computer World和微软自己报道:

如果一台机器连接了多台显示器并且屏幕编号没有按顺序排列,则某些应用程序将遇到渲染问题。

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

Microsoft将解决方法列为:

  1. 启用桌面合成(需要显卡支持)。
  2. 确保主监视器位于监视器布局的左上角。

建议的监视器布局示例

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

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