【发布时间】:2017-10-20 01:55:03
【问题描述】:
我正在努力在 JavaFX 中创建一个包含可编辑属性的表。我希望能够使用每行中包含的按钮开始编辑、提交更改和取消;但是,我在引用要开始编辑的单元格时遇到了一些困难。理想情况下,我想做类似的事情:
controller.buttonColumn.setCellFactory(p -> new TableCell<TableItem, String>(){
@Override
protected void updateItem(String s, boolean empty) {
super.updateItem(s, empty);
if (getTableRow().getItem()==null){
setGraphic(null);
return;
}
Button editButton = new Button("Edit");
editButton.setOnAction(event -> {
getTableRow().getCell(1).startEdit();
});
setGraphic(editButton);
});
这不起作用,因为 TableRow 没有访问特定单元格的方法。同样,我可以使用这样的一行:
getTableView().getEditingCell().cancelEdit();
对于我的取消按钮,但是getEditingCell()方法返回的不是TableCell而是TablePosition,它没有访问对应单元格的方法。
tl;博士 我正在寻找一种方法来访问 TableView 中的单元格,因为它是邻居。
【问题讨论】:
标签: button javafx tableview tablerow tablecell