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