Mar*_*ger 47 java gtk swing javafx look-and-feel
我们有一个使用Swing的Java应用程序,但我们正在将它迁移到JavaFX.因此,我们将旧的Swing代码包装成SwingNode
s并逐步替换它们.
在迁移之前,Swing应用程序用作com.sun.java.swing.plaf.gtk.GTKLookAndFeel
外观(Ubuntu上的默认设置).我们使用以下代码进行设置(如果可用):
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if (info.getClassName().equals("com.sun.java.swing.plaf.gtk.GTKLookAndFeel")) {
UIManager.setLookAndFeel(info.getClassName());
}
}
Run Code Online (Sandbox Code Playgroud)
这很好.然而,在切换到JavaFX后,调用UIManager.setLookAndFeel()
冻结应用程序,没有任何反应.需要手动设置外观,因为我们仍然需要设置尚未根据文件迁移到JavaFX的Swing组件的样式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
.
我们可以做些什么来使用它GTKLookAndFeel
来设计我们的Swing组件SwingNode
?
Gui组件需要更新为gui线程。
尝试以下方法之一:
SwingUtilities.invokeLater(() -> {
//commands
});
javafx.application.Platform.runLater(() -> {
//commands
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
881 次 |
最近记录: |