2012-07-18 67 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 {...}