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();