TableColumn<Row, Boolean> column = new TableColumn<Row, Boolean>();
column.setCellFactory(new Callback<TableColumn<Row, Boolean>, TableCell<Row, Boolean>>() {
@Override
public TableCell<Row, Boolean> call(final TableColumn<Row, Boolean> param) {
final CheckBox checkBox = new CheckBox();
final TableCell<Row, Boolean> cell = new TableCell<Row, Boolean>() {
@Override
protected void updateItem(Boolean item, boolean empty) {
super.updateItem(item, empty);
if (item == null) {
checkBox.setDisable(true);
checkBox.setSelected(false);
checkBox.setOnAction(null);
} else {
checkBox.setDisable(false);
checkBox.setSelected(item);
checkBox.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
tabView.edit(0, param);
commitEdit(checkBox.isSelected());
}
});
}
}
};