2017-10-04 117 views
1

我对JavaFX很新颖,我试图通过CSS更改我的应用程序方面。第一次它工作正常,当我切换到另一个场景CSS'类不适用。 由于我的项目有10个场景,我倾向于使用单个CSS文件通过使用以下语句将我的样式应用于所有场景: StyleManager.getInstance().addUserAgentStylesheet(this.getClass().getResource("/style.css").toExternalForm()); into start()方法。 如何在全局范围内将CSS文件应用于所有场景?JavaFX - 为整个应用程序设置默认CSS样式表

回答

1

您可以通过以下两行做到这一点:

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

第一行设置默认的样式表摩德纳(在这里你甚至可以选择设置JavaFX2里海为默认样式表)使用Application#setUserAgentStylesheet,而第二行会将您的样式表添加到用户代理样式表列表中。

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


其他的解决办法是子类Scene,在继承缺省情况下可以增加你的样式表,然后而非实例Scene,你可以创建你的子类的实例。

相关问题