JavaFx动态设置Tableview单元格背景色

JavaFx动态设置Tableview单元格背景色,java,javafx-2,Java,Javafx 2,我想在单击“添加”按钮时动态向行的颜色单元格添加颜色。我无法更改单元格的背景色。请参考图片。 我无法通过代码实现这一点。 提前谢谢你的帮助 向表中添加值的代码段: @FXML private void addEntity() { data.add(new Inventory(codeTemp.getText(), articleNameTemp.getText(), Integer.parseInt(amountTemp.getText()), dcTemp.i

我想在单击“添加”按钮时动态向行的颜色单元格添加颜色。我无法更改单元格的背景色。请参考图片。 我无法通过代码实现这一点。 提前谢谢你的帮助

向表中添加值的代码段:

     @FXML
     private void addEntity() {

      data.add(new Inventory(codeTemp.getText(), articleNameTemp.getText(), Integer.parseInt(amountTemp.getText()), dcTemp.isSelected() ? true:false, stTemp.isSelected()?true:false, Utilities.toRGBCode(colorTemp.getValue()), informationTemp.getText(), data.size()+1));
      inventoryTable.setItems(data);

     }

是在列的回调帮助下完成的

        Callback<TableColumn<Inventory, String>, TableCell<Inventory, String>> cellFactory =
        new Callback<TableColumn<Inventory, String>, TableCell<Inventory, String>>() {
            public TableCell call(TableColumn p) {
                TableCell cell = new TableCell<Person, String>() {
                    @Override
                    public void updateItem(String item, boolean empty) {
                        super.updateItem(item, empty);
                        setText(empty ? null : getString());
                        setStyle("-fx-background-color:"+getString());
                    }

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


                return cell;
            }
        };
回调单元工厂=
新回调函数(){
公共TableCell调用(TableP列){
TableCell单元格=新的TableCell(){
@凌驾
public void updateItem(字符串项,布尔值为空){
super.updateItem(项,空);
setText(空?null:getString());
setStyle(“-fx背景色:“+getString());
}
私有字符串getString(){
返回getItem()==null?”:getItem().toString();
}
};
返回单元;
}
};

我有一个类似的问题(实际上完全相同的代码),但是“item”始终为空。有人知道这是为什么吗?忘了在列中添加cell factory。您是否可以将数据添加到表中?是的,我有三个包含数据的字符串列。您是否已将cellfactory添加到该列中?例如:
column.setCellFactory(cellFactory