JavaFX - 为整个Application设置默认的CSS样式表

时间:2017-10-04 08:09:56

标签: java css javafx javafx-2 javafx-8

我是JavaFX的新手,我正在尝试通过CSS更改我的应用程序方面。第一次它工作正常,当我切换到另一个场景时,CSS'类没有被应用。 因为我的项目有10个场景,所以我更喜欢使用单个CSS文件通过使用以下语句将我的样式应用于所有场景: StyleManager.getInstance().addUserAgentStylesheet(this.getClass().getResource("/style.css").toExternalForm()); 进入start()方法。 如何全局应用我的CSS文件的所有场景?

1 个答案:

答案 0 :(得分:2)

您可以使用以下两行来完成:

Application.setUserAgentStylesheet(Application.STYLESHEET_MODENA);
StyleManager.getInstance().addUserAgentStylesheet(getClass().getResource("/style.css").toString());

第一行将使用Application#setUserAgentStylesheet将默认样式表设置为modena(这里甚至可以选择将JavaFX2 caspian设置为默认样式表),而第二行将样式表添加到用户代理样式表列表中。 / p>

这不是最好的解决方案,因为StlyeManager是一个私有API(现在将保留在JDK9中)。

其他解决方案是子类Scene,您可以在哪个子类中默认添加样式表,然后可以创建子类的实例,而不是实例化Scene