我刚开始在javafx 2中使用CSS。我在从Pane中删除CSS样式类时遇到了一些问题。
Pane根据自定义对象的布尔值获取背景颜色和边框:
//kw is a subobject of objects in a listview, everytime the selection is changed
//the CSS on the pane gets refreshed
resetGUI();
...
if(kw != null){
if (kw.getAfgewerkt()) {
pRA.getStyleClass().add("success"); //true
} else {
pRA.getStyleClass().add("error"); //false
}
}
...
以上作品。
然而,在我在pRA节点上设置样式类之前,我通过调用resetGUI()方法重置CSS,因为当kw对象为null时,不应该应用CSS。
public void resetGUI(){
...
pRA.getStyleClass().removeAll("error", "success");
...
}
似乎删除StyleClasses不起作用。如果kw对象为null,我希望pRa节点看起来像'default'。我是否必须在CSS文件中自己创建一个“默认”类?那不应该是我假设的情况吗?
这是css:
.error {-fx-background-color: #FBE3E4;-fx-text-fill:#8a1f11;-fx-border-style:solid;-fx-border-color:#FBC2C4;}
.success {-fx-background-color:#E6EFC2;-fx-text-fill:#264409;-fx-border-style:solid;-fx-border-color:#C6D880;}
答案 0 :(得分:0)
由pmoule评论:
使用
自行分配默认样式pRA.getStyleClass().add("default");
并且不要忘记将其添加到css中
.default {...}