如何动态更改tableview的单元格背景

时间:2016-08-03 08:12:39

标签: javafx

我想在其值为空时更改tableview的单元格背景颜色。你可以帮帮我吗?谢谢。 下面是我的源代码概述,但它不起作用。

{{1}}

1 个答案:

答案 0 :(得分:0)

如果项目变为"",则使用代码将背景设置为颜色。如果项目应该更改,您永远不会更改它。此项目为""意味着该单元格不为空

此外,您已经覆盖了updateItem方法,该方法在项目更改或单元格变空时调用,应该使用它来更新背景。

public class Cell extends TextFieldTableCell<Itemtest, String>{

    public Cell(StringConverter<String> str){
        super(str);
    }

    @Override
    public void updateItem(String item, boolean empty) {
        super.updateItem(item, empty);
        setText(empty ? null : getString());
        setGraphic(null);

        // is this really the check you want?
        if (item != null && item.isEmpty()) {
             this.setBackground(new Background(new BackgroundFill(Color.RED, CornerRadii.EMPTY, Insets.EMPTY)));
        } else {
             // change back to empty background
             this.setBackground(Background.EMPTY);
        }
    }

    private String getString(){
        return getItem() == null ? "" : getItem().toString();
    }

}