【问题标题】:applyCss doesn't work when remove a styleClass删除 styleClass 时 applyCss 不起作用
【发布时间】:2014-04-25 18:05:39
【问题描述】:

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

    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();

【问题讨论】:

    标签: css javafx textfield javafx-8


    【解决方案1】:

    这些错误的一个常见原因是您可能多次添加了“invalid-field”样式类。 (请记住,getStyleClass() 返回的是 List<String>,而不是 Set<String>。)因此您可能应该采取措施确保样式类只添加一次,或者在删除它时采取措施删除所有出现的事件。

    我喜欢两者兼而有之(我来自哪里,我们称之为“腰带和大括号方法”)。

    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"));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 2018-10-18
      • 2010-09-06
      相关资源
      最近更新 更多