javafx2.0 获取TableView 正在编辑的单元TableCell 博客分类: javafx2.0javafx javafx2.0javafx表格TableViewTableCell
程序员文章站
2024-03-25 16:24:22
...
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();