java如何在JavaFX2.2中对自定义控件进行蒙皮,而不引起CSS警告?
使用集成了JavaFX2.2的Java7更新6,
看起来,当我为Control
定义一个自定义UserAgentStylesheet
并在其中定义一个-fx-skin
时,JavaFX的StyleHelper
抱怨缺少对CSS“变量”的引用:
WARNING: com.sun.javafx.css.StyleHelper calculateValue Could not resolve '-fx-outer-border' while resolving lookups for '-fx-background-color' from rule '*.tab-pane *.tab-header-background' in stylesheet jar:file:/C:/Programme/Java/jdk1.7.0_06/jre/lib/jfxrt.jar!/com/sun/javafx/scene/control/skin/caspian/caspian.bss
对于单个自定义组件,大约有40个类似上述的警告
我可能错过了一些东西,因为这是我第一次尝试自定义蒙皮,但我不确定它是什么。 无论是JavaFX dev ML还是FX文档,甚至JFXtras的代码都没有指出导致这种情况的明显原因
如果这很重要,我会直接扩展Control
并实现Skin
,但是如果我扩展Button
,覆盖getUserAgentStylesheet()
,并让CSS指向默认的ButtonSkin
,也会发生同样的情况
你能指出我的错误或解决方法吗
# 1 楼答案
这是JavaFX中的一个已知问题,您可以使用以下解决方法来避免这些警告: 检查getScene()!=将节点添加到控件之前为null 这修复了JFXtras控件的问题