我对JavaFX非常陌生,我正试图通过CSS改变我的应用程序方面。当我切换到另一个场景CSS类时,它第一次工作得很好。因为我的项目有10个场景,所以我更喜欢使用一个CSS文件将我的风格应用于所有场景,方法是使用以下语句:StyleManager.getInstance().addUserAgentStylesheet(this.getClass().getResource("/style.css").toExternalForm());
到start()
方法。如何将我的CSS文件全局应用于所有场景?
发布于 2017-10-04 09:55:15
您可以使用以下两行来完成此操作:
Application.setUserAgentStylesheet(Application.STYLESHEET_MODENA);
StyleManager.getInstance().addUserAgentStylesheet(getClass().getResource("/style.css").toString());
第一行将使用JavaFX2将默认样式表设置为modena (在这里您甚至可以选择将Application#setUserAgentStylesheet
设置为默认样式表),而第二行将将样式表添加到用户代理样式表列表中。
这不是最好的解决方案,因为StlyeManager
是一个私有的API (并且将保留在JDK9中,就像现在一样)。
其他解决方案是子类Scene
,默认情况下您可以在其中添加样式表,然后可以创建子类的实例,而不是实例化Scene
。
https://stackoverflow.com/questions/46559981
复制相似问题