尝试使用GTKLookAndFeel在JavaFX中设置SwingNodes的样式会冻结应用程序
2022-08-31 22:36:52
我们有一个使用 Swing 的 Java 应用程序,但我们正在将其迁移到 JavaFX。因此,我们将旧的 Swing 代码包装成 s,并逐步替换它们。SwingNode
在迁移之前,Swing 应用程序用作外观(Ubuntu 上默认)。我们使用以下代码进行设置(如果可用):com.sun.java.swing.plaf.gtk.GTKLookAndFeel
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if (info.getClassName().equals("com.sun.java.swing.plaf.gtk.GTKLookAndFeel")) {
UIManager.setLookAndFeel(info.getClassName());
}
}
这工作正常。然而,在切换到JavaFX之后,调用会冻结应用程序,并且没有任何反应。需要手动设置外观,因为我们仍希望基于 .UIManager.setLookAndFeel()
GTKLookAndFeel
更多信息:这仅适用于com.sun.java.swing.plaf.gtk.GTKLookAndFeel
,因为它在使用javax.swing.plaf.metal.MetalLookAndFeel
,javax.swing.plaf.nimbus.NimbusLookAndFeel
或com.sun.java.swing.plaf.motif.MotifLookAndFeel
时工作。
我们可以做些什么来使它在s中设置我们的Swing组件的样式?GTKLookAndFeel
SwingNode