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