2017-08-16 60 views
3

我们的应用程序的用户遇到了无法正确绘制Swing GUI的问题。Windows 7更新后在多个屏幕上显示问题KB4034664(2017年8月)

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

的问题那种的例子我们看到*:

Application draw issues

用户也报告对话框只显示一帧,而在其他方面透明。如果UI线程被阻止,那么您会看到同样的问题。

可能是什么问题?


*,因为它包含敏感信息

回答

5

更新我不能发布我们的实际应用的截图:此问题已被固定在更新KB4039884


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

看来,微软的更新KB4034664(和KB4034679)为 的Windows 7和Windows Server导致几个 应用的第二屏幕上显示的问题。

通过Born CityComputer World报道,并Microsoft themselves

如果一台机器具有连接多台显示器,屏幕 编号不按顺序,有些应用程序会遇到 渲染问题。

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

微软列出了解决方法为:

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

Example of suggested monitor layout

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

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

+1

我可以确认,更改显示器布局解决的克罗诺斯劳动力管理的问题。 (基于Java的Web应用程序) –

+0

[根据neunbeere.de](https://www.neunbeere.de/blog/2017/08/graphics-bug-in-windows-7-after-installing-august-2017-安全更新/)“*实际问题似乎在Windows API函数”StretchDIBits“中。安全更新后,**当使用此函数将图形绘制到具有负屏幕坐标的屏幕部分时,将失败***” –