谁的该死的想法是排除StyleManager而没有直接和明确的替代-它打破了许多程序,正如我所看到的!
我需要对整个应用程序进行一些重新设计(定制组件、自定义伪类、定制平台特定补丁等)。在JavaFX 8中,我可以使用:com.sun.javafx.css.StyleManager.getInstance().addUserAgentStylesheet("MyShit.css");
但是在Java9中,StyleManager是不可用的。那么有办法为每个场景设置CSS吗?
使用"Application.setUserAgentStylesheet“不是一个选项,因为我不想失去默认的外观和感觉,我已经将其称为设置MODENA样式。我希望扩展默认的CSS,而不是替换它。我也不想重写整个MODENA (很明显)。
我真的不想手动为应用程序中的每个表单/场景设置相同的样式表(或者将它添加到每个FXML文件中)。有许多形式,动态构造的对话框。主要原因是,有几个应用程序之间共享的部分(和库),所以我不想硬编码任何样式表(对于不同的应用程序可能有不同的名称和路径)。
因此,我需要一种方法来为应用程序的每一个可能场景设置一个额外的样式表。这在FX9中有可能吗?
我查看了定制的FXML加载器、CSS加载器、场景加载器和其他拦截场景创建的方法--没有办法!
发布于 2017-11-14 17:42:18
这只是JavaFX的另一个不足--只需使用下面的JVM参数就可以访问StyleManager。
--add-exports=javafx.graphics/com.sun.javafx.css=ALL-UNNAMED
https://stackoverflow.com/questions/47274305
复制相似问题