Javafx 2 如何设置JavaFX默认皮肤

Javafx 2 如何设置JavaFX默认皮肤,javafx-2,javafx,javafx-8,Javafx 2,Javafx,Javafx 8,我注意到,当我在JVM7和JVM8上运行JavaFX应用程序时,会得到不同的默认外观。如何在每个JVM上设置相同的默认外观?您可以通过添加样式表来设置自己的外观 scene.getStylesheets().add( getClass().getResource("my-skin.css").toExternalForm()); 不幸的是,没有默认的样式表。也许在jfxrt.jar中浏览会产生一些结果。JavaFX2的默认样式表是caspian.css。您可以在com.sun.java

我注意到,当我在JVM7和JVM8上运行JavaFX应用程序时,会得到不同的默认外观。如何在每个JVM上设置相同的默认外观?

您可以通过添加样式表来设置自己的外观

scene.getStylesheets().add(
    getClass().getResource("my-skin.css").toExternalForm());

不幸的是,没有默认的样式表。也许在jfxrt.jar中浏览会产生一些结果。

JavaFX2的默认样式表是caspian.css。您可以在com.sun.javafx.scene.control.skin.caspian下的jfxrt.jar中找到它。JavaFX8改变了这一点,我相信默认样式表命名为。为了获得通用样式表,您必须定义自己的样式表或将其中一个默认样式表复制到项目中。

您可以设置默认外观:

@Override 
public void start(Stage stage) throws Exception {
    ....
    setUserAgentStylesheet(STYLESHEET_CASPIAN);
    ....
}

您也可以在命令行上使用-Djavafx.userAgentStylesheetUrl=caspian运行。

是否有其他内置到JavaFX中的皮肤我可以使用?我不知道,但我对JavaFX一点经验都没有。@OttPrime将其作为答案;我已经有足够的分数了。这不是JavaFX8方法吗?它会在JRE 7上运行吗?@OttPrime不,它不会在7上运行,请使用
System.setProperty(“javafx.useragentsttylesheeturl”,“CASPIAN”)当以jar的形式启动应用程序时,上面的代码会起作用,但是由于某种原因,当使用JavaWebStart启动应用程序时,上面的代码不会起作用,你知道为什么吗?我已经为此挣扎了一段时间,似乎找不到原因。