javafx-2 getStyleClass()。removeAll

时间:2012-07-18 10:47:08

标签: css javafx-2 removeall

我刚开始在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;}

1 个答案:

答案 0 :(得分:0)

由pmoule评论:

使用

自行分配默认样式
pRA.getStyleClass().add("default");

并且不要忘记将其添加到css中

.default {...}