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

时间:2014-09-01 08:09:32

标签: java javafx-2

我想在单击ADD按钮时动态地向行的颜色单元格添加颜色。我无法更改单元格的背景颜色。请参阅图片以供参考。 在代码的帮助下无法实现这一点。 提前感谢您的帮助。

将值添加到表格:

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

     }

enter image description here

1 个答案:

答案 0 :(得分:8)

在列的回调的帮助下做了。

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

enter image description here