作者:13205340728wan | 来源:互联网 | 2023-01-09 07:25
在没有直接和明确替换的情况下排除StyleManager的想法真是太棒了 - 我看到它打破了许多程序!
我需要为整个应用程序(自定义组件,自定义伪类,自定义平台特定的补丁等)进行一些重新设计.在JavaFX 8中,我可以使用:com.sun.javafx.css.StyleManager.getInstance().addUserAgentStylesheet("MyShit.css");
但是在Java 9中,StyleManager不可用.那么有没有办法为每个场景设置CSS?
使用"Application.setUserAgentStylesheet"不是一个选项,因为我不想丢失默认的lookandfeel,我已经调用它来设置MODENA样式.我想扩展默认CSS而不是替换它.我也不想重写整个MODENA(显然).
我真的不想手动为应用程序中的每个表单/场景设置相同的样式表(或将其添加到每个FXML文件).有许多形式,动态构造的对话框.主要原因是,有几个应用程序之间共享的部分(和库),所以我不想硬编码任何样式表(可能有不同的应用程序的名称和路径).
所以我需要一种方法在程序的一个点为应用程序的每个可能场景设置一个额外的样式表.FX9有可能吗?
PS我研究了自定义FXML加载器,CSS加载器,场景加载器和拦截场景创建的其他方法 - 没有办法!