2012-07-18 75 views
2

我刚刚开始在javafx 2中使用CSS。我在从窗格中删除CSS样式类时遇到了一些问题。javafx-2 getStyleClass()。removeAll

的窗格获取基于自定义对象的布尔值,背景颜色和边框:

//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

也许有帮助看看[本问答] (http://stackoverflow.com/q/10887525/682495) – 2012-07-18 11:08:26

+1

你是对的。直到前面提到的错误得到解决,自己分配一个'默认'类是一个必需的解决方法。 – pmoule 2012-07-18 20:35:21

回答

0

正如评论说pmoule:

指定自己的默认样式使用

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

,不要忘记将它添加在CSS

.default {...}