2

我刚开始在 javafx 2 中使用 CSS。我在从窗格中删除 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 对象为空时,不应应用任何 CSS。

public void resetGUI(){
    ...
    pRA.getStyleClass().removeAll("error", "success");
    ...
}

似乎删除 StyleClasses 不起作用。如果 kw 对象为空,我希望 pRa 节点看起来像“默认”。我必须自己在 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;}
4

1 回答 1

0

正如 pmoule 所评论的:

通过使用自己分配默认样式

pRA.getStyleClass().add("default");

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

.default {...}
于 2013-10-24T16:13:38.570 回答