JFX使用CellFactory(Callback)来获取每个单元格(TableCell)的控件, 因而表格(TableView)并没有直接提供获取正在编辑的单元格(TableCell)的方法, 仅仅支持获取当前正在编辑的单位的位置(TablePosition), 如果需要获取正在编辑器的单元格(如手动提交编辑(commitEdit())), 可以通过如下方法来实现:
public class MyCell<S,T> extends TableCell<S, T> {
@Override
public void startEdit() {
if((!(isEditable())) || (!(getTableView().isEditable())) || (!(getTableColumn().isEditable()))){
return ;
}
//在这里记录正在编辑的单元格. 作为示例, 这里使用Cell对应的TableView的userData来记录.
getTableView().setUserData(this);
super.startEdit();
}
@Override
public void cancelEdit() {
super.cancelEdit();
getTableView().setUserData(null);
}
}
//外部获取TableCell
table.getUserData();

本文介绍了一种在JavaFX(JFX)中实现自定义表格单元格编辑的方法。通过继承TableCell并重写startEdit和cancelEdit方法,可以记录当前正在编辑的单元格。这种方法允许开发者在需要时手动提交单元格的编辑。
1436

被折叠的 条评论
为什么被折叠?



