如何处理 Java 11 中缺少的 Swing PLAF 类?

Bar*_*jeu 8 java swing look-and-feel java-10 java-11

出于某种原因,我们使用com.sun.java.swing.plaf.windows.WindowsComboBoxUI在 Java 5.0 到 Java 8.0 的 Windows/Linux/Mac OS 平台上工作的类

从 Java 10 和 Java 11 开始(我们将坚持它作为 LTS)这个类对类加载器不可见:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/java/swing/plaf/windows/WindowsComboBoxUI
at xxx.YYY.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.sun.java.swing.plaf.windows.WindowsComboBoxUI
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more
Run Code Online (Sandbox Code Playgroud)

我们怎样才能让它工作?

Bar*_*jeu 8

我们能够com.sun.java.swing.plaf.windows.WindowsComboBoxUI在代码中替换为javax.swing.plaf.basic.BasicComboBoxUI,看起来工作正常。