欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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