JavaFX2:如何将样式表加载到作为库的一部分分发的Scene子类中



我正在对许多JavaFX2类进行子类化,以将它们作为其他人使用的库的一部分进行分发。这需要将样式表(库的一部分)应用于MySceneClass的所有实例(不是真名:-)),我找不到正确的路径魔法。我尝试过的变体:

mySceneInstance.getStylesheets.addAll("/com/mine/css/MySceneClass.css")

其中com.mine.css是库的一个包:我尝试过的变体不包括前导斜杠,修剪了路径的前导部分,可能还有其他一些。但我总是得到这样的信息:

WARNING: com.sun.javafx.css.StyleManager loadStylesheet Resource "/com/mine/css/MySceneClass.css" not found.

我还尝试将存根Css类放入Css包中,然后使用

com.mine.css.Css.getResource("Scene.css")

获取我可以传递到的URL。。。getStyleSheets.addAll(…),但当我这样做时,我会收到一条消息,比如:

WARNING: com.sun.javafx.css.StyleManager loadStylesheet Resource "../css/Scene.css" not found.

这非常令人困惑,因为getResource似乎正确地识别了文件,但我仍然无法加载它

这是OS X上当前的开发预览版(我相信版本是2.1 09)。

谢谢你的帮助,Ken

我只在Ensemble示例中找到了这种语法:

scene.getStylesheets().addAll(Ensemble2.class.getResource("ensemble2.css").toExternalForm());

最终将问题追踪到Intellij IDEA CE,默认情况下,Intellij IDEA CE不会将css文件识别为需要从源目录复制到目标目录的资源。将*.css模式添加到已识别的资源类型列表中解决了问题。

最新更新