为什么在更改Java8版本(从8u45更改为8u171)时颜色主题会发生变化?

为什么在更改Java8版本(从8u45更改为8u171)时颜色主题会发生变化?,java,swing,java-8,jide,Java,Swing,Java 8,Jide,我有一个应用程序,可以使用两种不同版本的java启动: 使用8u45,我的应用程序会呈现蓝色 使用8u171,我的应用程序可以获得白色阴影 我在应用程序中检查了lookandfile init,但它似乎并不影响这种行为 我使用Swing和Jide 3.6.0 Library 当我将java版本从8u45升级到8u171时,有人知道为什么会发生这种行为吗 谢谢你的帮助:) 编辑: 应用程序正在Windows上运行 我使用com.sun.java.swing.plaf.windows.Win

我有一个应用程序,可以使用两种不同版本的java启动:

  • 使用8u45,我的应用程序会呈现蓝色
  • 使用8u171,我的应用程序可以获得白色阴影
我在应用程序中检查了lookandfile init,但它似乎并不影响这种行为

我使用Swing和Jide 3.6.0 Library

当我将java版本从8u45升级到8u171时,有人知道为什么会发生这种行为吗

谢谢你的帮助:)

编辑:

应用程序正在Windows上运行


我使用com.sun.java.swing.plaf.windows.WindowsLookAndFeel,由UIManager.getLookAndFeel()提供。

它链接到系统属性os.name。自windows 8.1以来,GetVersionEx函数已被弃用,而旧版本的java 8(如8u45)则基于此函数来提供此系统属性

有关更多信息:

<> >当你用java版本启动JVM时,它会考虑Windows 8.1 操作系统名称并应用其皮肤。 通过使用旧的jdk 8u45显示System.getProperty(“os.name”),快速测试可以支持此语句:

我想Java8的更高版本修复了这个问题,并检索到了好的os名称。例如,对于jdk u171:


您在Swing中使用的外观和感觉是什么?是否您正在Windows上运行此应用程序?我似乎使用了UIManager.getLookAndFeel()提供的com.sun.java.swing.plaf.Windows.WindowsLookAndFeel。是的,在Windows上运行的应用程序。说得好:)谢谢。