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 ノードが「デフォルト」として表示されるようにします。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;}