我的tableview中有一个checkBoxTableCell字段,并且是从数据源填充的,我想禁用某些行的复选框,行数据显示某些条件。
例如,假设我的数据是Person类对象列表和
if person.exclude=='Y'
然后我必须禁用该行中的复选框。
我试图在col_checkBox.setCellFactory(new Callback .....)
中尝试在此函数中访问person对象。而且我尝试了其他一些但没有成功的事情:(。有什么帮助吗?
这是我的代码: 列由以下内容定义:
@FXML
private TableColumn<FVariable, Boolean> col_exclude;
我用;
填充表格 ObservableList<FVariable> nt = FXCollections.observableArrayList(gd.getInputAtrributes());
tbl_Attributes.setItems(nt);
然后;
col_exclude.setCellValueFactory(new PropertyValueFactory<>("excluded"));
// col_exclude.setCellFactory(CheckBoxTableCell.forTableColumn(col_exclude));
final Callback<TableColumn<FVariable, Boolean>,TableCell<FVariable, Boolean>> AllowCellFactory=CheckBoxTableCell.forTableColumn(col_exclude);
col_exclude.setCellFactory((TableColumn<FVariable, Boolean> param) -> {
TableCell<FVariable, Boolean> defCell= AllowCellFactory.call(param);
FVariable p=(FVariable) defCell.getTableRow().getItem();
if (p.getdType()!='S')
defCell.disableProperty().set(false);
else
defCell.disableProperty().set(true);
return defCell;
});
答案 0 :(得分:0)