适用于桌面应用程序的JavaFX-8 GUI:在Swing中是否有外观和感觉?

Som*_*ing 6 java swing javafx-8

在Swing中,有一些Look&Feels作为Java的一部分提供,例如:

跨平台:

  • 雨云
  • 主题
  • 金属

特定于平台:

  • GTK +
  • Windows XP
  • 等等

Java 8是否为Swing提供了JavaFX的外观和感觉?(我不会询问具体的外观和感觉,我一般会询问是否有默认的外观和感觉)

Som*_*ing 8

我将回答我自己的问题,总结一下这个问题的答案以及我自己做的一些研究:

  • 在JavaFX中,没有Look&Feel术语,但有Stylesheets
  • 在JavaFX-8(即Java 8版本)之前,只有一个提供的样式表,名为Caspian
  • 从JavaFX-8开始,添加了另一个样式表,名为Modena.在摩德纳样式表是一个默认的JavaFX的8

可以使用以下命令在ModenaCaspian样式表之间切换:

setUserAgentStylesheet(STYLESHEET_CASPIAN); // Switches to "Caspian"
setUserAgentStylesheet(STYLESHEET_MODENA);  // Switches to "Modena"
Run Code Online (Sandbox Code Playgroud)

注意:

  • setUserAgentStylesheet(String url) 是一种类的方法 Application
  • 常数STYLESHEET_CASPIANSTYLESHEET_MODENA类的成员Application
  • 应该在JavaFX Application线程上调用上面显示的代码
  • STYLESHEET_CASPIANSTYLESHEET_MODENA包含网址.您可以使用自己的样式表使用该方法,将url传递给样式表

    • 例如,如果我创建了一个名为DarkTheme.css的样式表并将放在项目目录中,在src/resources下,我将使用以下代码来应用它: setUserAgentStylesheet(this.getClass().getResource("resources/DarkTheme.css").toExternalForm());

    • 如果您只想扩展当前样式表,而不是从头开始全部定义它,您可以使用: scene.getStylesheets().add(this.getClass().getResource("resources/DarkTheme.css").toExternalForm());