Boo*_*mah 8 java javafx-2 javafx-8
我正在使用JDK8 build 87并希望动态添加和删除css stylesheets它们,以便我的整个JavaFX应用程序可以使用它们.
目前我正在styleSheet使用此命令设置默认值:
Application.setUserAgentStylesheet(Application.STYLESHEET_MODENA);
Run Code Online (Sandbox Code Playgroud)
然后,当我想添加一个额外的CSS样式表时,我这样做:
com.sun.javafx.css.StyleManager.getInstance.addUserAgentStylesheet(styleSheet);
Run Code Online (Sandbox Code Playgroud)
这有效,但我有两个问题.首先,它使用的是私有 API,其次,一旦完成它,似乎没有办法删除它(我正在使用,OSGI因此模块来去经常).
有人谈到2012年初公众搬家StyleManager,但我不确定是否发生过任何事情. API
有没有人知道要添加的公共方法,styleSheets以便它们适用于整个JavaFX应用程序?如何删除它们?
(我没有权限创建新的javafx-8标记)
// load default global stylesheet
Application.setUserAgentStylesheet(null);
// add custom global stylesheet
StyleManager.getInstance().addUserAgentStylesheet(AQUA_CSS_NAME);
Run Code Online (Sandbox Code Playgroud)
然而,正如 Boomah 指出的那样,StyleManager.getInstance().addUserAgentStylesheet它不是 JavaFX API 的一部分,因此确实不建议直接从用户代码中使用此方法。此外,它仅适用于添加全局样式表,而不能在添加样式表后删除此类样式表。
更具冒险精神的人可以创建一个补丁来添加 Boomah 的建议功能,方法是修改StyleManager代码以支持删除全局样式表并修改Application类源代码以为使用更新的新功能提供公共 API StyleManager,然后将补丁提交到openjfx-dev包含在 JavaFX 平台中。
与此同时,您可以在应用程序的每个场景上手动设置用户样式表 - 有点痛苦,但您就可以了。。。
| 归档时间: |
|
| 查看次数: |
2576 次 |
| 最近记录: |