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