如何在javafx的tablecell中使combobox可编辑?
我已经使用ComboBoxTableCell在tablecell中设置了一个Combobox,现在我希望这个Combobox可以编辑,以便用户可以相应地编辑它。我已经将combobox的可编辑属性设置为true,但没有成功。下面是代码如何在javafx的tablecell中使combobox可编辑?,javafx,combobox,tablecell,Javafx,Combobox,Tablecell,我已经使用ComboBoxTableCell在tablecell中设置了一个Combobox,现在我希望这个Combobox可以编辑,以便用户可以相应地编辑它。我已经将combobox的可编辑属性设置为true,但没有成功。下面是代码 ComboBoxTableCell combo = new ComboBoxTableCell(); tc_target.setCellFactory(combo.forTableCol
ComboBoxTableCell combo = new ComboBoxTableCell();
tc_target.setCellFactory(combo.forTableColumn(new
DefaultStringConverter(), trans));
tc_target.setOnEditCommit(new
EventHandler<TableColumn.CellEditEvent<File, String>>() {
@Override
public void handle(TableColumn.CellEditEvent<File, String>event) {
//work to do
}
});
combo.setEditable(true);
comboxTableCell组合=新的comboxTableCell();
tc_target.setCellFactory(组合.forTableColumn)(新
DefaultStringConverter(),trans));
tc_target.setOnEditCommit(新)
EventHandler(){
@凌驾
公共无效句柄(TableColumn.CellEditEventevent){
//要做的工作
}
});
combo.setEditable(真);
如何使此组合框可编辑?很高兴得到任何建议。ComboBoxTableCell(以及其他类似的类)在其Javadoc中不太清楚。正确使用
ComboBoxTableCell
的要求是:
表格列
必须是可编辑的TableView
也必须是可编辑的TableColumn.setEditable(false)
作为旁注,您不需要编写
setOnEditCommit()
,而且我不确定这样做时是否会破坏ComboBoxTableCell
。TableColumn和TableView都被设置为可编辑,但仍然没有成功地将ComboBox设置为可编辑。还需要做什么?@Ziva已被setOnEditCommit()
删除?我需要对setOnEditCommit()的句柄事件执行一些任务,删除它将不允许我这样做。那么我该如何实现呢?@Ziva默认情况下,ComboBoxTableCell
负责通过标签显示单元格值,单元格值取自行所代表的项目。进入编辑模式时,标签
变为一个组合框
。当您从组合框中选择新值时,当表格单元格
失去焦点时,它将提交回从中获取其原始值的“项”。如果你不想要这种行为,你需要编写你自己的细胞工厂回调。我是新手,不知道怎么做。你能给我看一下同样的代码吗?