applyCss不';删除styleClass时不起作用

applyCss不';删除styleClass时不起作用,css,javafx,textfield,javafx-8,Css,Javafx,Textfield,Javafx 8,我有一个TextField,当它的值有效/无效时,通过更改styleClass设置样式,但存在一个很大的问题。当值变为有效值时,我仍应再次更改文本字段,以应用样式类。之后我尝试了applyCss()方法,但没有成功:( 这些错误的一个常见原因是您可能多次添加了“invalid field”样式类(请记住,getStyleClass()返回一个列表,而不是集),因此您可能应该采取措施确保只添加一次样式类,或者在删除样式类时采取措施删除所有出现的内容 我喜欢两者兼而有之(在我的家乡,我们称之为“腰带

我有一个
TextField
,当它的值有效/无效时,通过更改
styleClass
设置样式,但存在一个很大的问题。当值变为有效值时,我仍应再次更改
文本字段
,以应用
样式类
。之后我尝试了
applyCss()
方法,但没有成功:(


这些错误的一个常见原因是您可能多次添加了“invalid field”样式类(请记住,
getStyleClass()
返回一个
列表,而不是
集),因此您可能应该采取措施确保只添加一次样式类,或者在删除样式类时采取措施删除所有出现的内容

我喜欢两者兼而有之(在我的家乡,我们称之为“腰带和背带方法”)

observeListStyleClass=field.getStyleClass();
如果(!有效)
如果(!styleClass.contains(“无效字段”)){
添加(“无效字段”);
} 
}否则{
//删除所有引用:
styleClass.removeAll(Collections.singleton(“无效字段”);
}

这些错误的一个常见原因是您可能多次添加了“无效字段”样式类。(请记住,
getStyleClass()
返回的是
列表,而不是
集合
)因此,您可能应该采取措施确保仅添加一次样式类,或者在删除样式类时采取措施删除所有引用

我喜欢两者兼而有之(在我的家乡,我们称之为“腰带和背带方法”)

observeListStyleClass=field.getStyleClass();
如果(!有效)
如果(!styleClass.contains(“无效字段”)){
添加(“无效字段”);
} 
}否则{
//删除所有引用:
styleClass.removeAll(Collections.singleton(“无效字段”);
}
    if(!valid){
        field.getStyleClass().add("invalid-field");//Works excellent
    } else {
        field.getStyleClass().remove("invalid-field");//Doesn't work up to the time textProperty doesn't change once again
        field.applyCss();
ObservableList<String> styleClasses = field.getStyleClass();
if(!valid)
    if( ! styleClass.contains("invalid-field")){
        styleClass.add("invalid-field");
    } 
} else {
    // remove all occurrences:
    styleClass.removeAll(Collections.singleton("invalid-field"));
}