首页 文章

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

提问于
浏览
1

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

1 回答

  • 2

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

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

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

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


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

相关问题