【问题标题】:JavaFx Set Tableview Cell Background Color DynamicallyJavaFx 动态设置 Tableview 单元格背景颜色
【发布时间】:2014-09-01 08:09:32
【问题描述】:

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

向表格添加值的片段:

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

     }

【问题讨论】:

    标签: java javafx-2


    【解决方案1】:

    在列回调的帮助下完成。

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

    【讨论】:

    • 我有一个类似的问题(实际上完全相同的代码)但是“item”一直是空的。有人知道这是为什么吗?
    • 忘记将单元工厂添加到列中。您可以向表格中添加数据吗?
    • 是的,我有三个包含数据的字符串列
    • 你把cellfactory加到专栏了吗?喜欢:column.setCellFactory(cellFactory
    猜你喜欢
    • 2017-04-30
    • 2017-02-08
    • 2011-10-23
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 2012-06-06
    • 2019-10-21
    • 2021-10-19
    相关资源
    最近更新 更多