我有一个可以使用两个不同版本的 java 启动的应用程序:
- 使用 8u45,我的应用程序变成了蓝色阴影
- 使用 8u171,我的应用程序获得白色阴影
我检查了应用程序中的 lookandfile 初始化,但它似乎不会影响此行为。
我使用的是 Swing 和 Jide 3.6.0 库
有人知道为什么当我将 Java 版本从 8u45 升级到 8u171 时会发生这种行为吗?
感谢您的帮助:)
编辑:
应用程序正在 Windows 上运行。
我使用 com.sun.java.swing.plaf.windows.WindowsLookAndFeel,由 UIManager.getLookAndFeel() 给出
最佳答案
它链接到系统属性 os.name。自 Windows 8.1 起,GetVersionEx 函数已被弃用,而旧版本的 java 8(例如 8u45)基于此函数来提供此系统属性。
更多信息:https://learn.microsoft.com/en-us/windows/win32/sysinfo/targeting-your-application-at-windows-8-1
这样当你用这个版本的 java 启动一个 jvm 时,它会考虑 windows 8.1 操作系统名称并应用其皮肤。 快速测试可以通过使用旧的 jdk 8u45 显示 System.getProperty("os.name") 来支持此语句:
我想 java 8 的更高版本修复了这个问题并检索了好的操作系统名称。例如使用 jdk u171 :
关于java - 为什么当我更改 Java 8 版本(从 8u45 到 8u171)时我的颜色主题会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57187202/