如何在javafx的tablecell中使combobox可编辑?

如何在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在tablecell中设置了一个Combobox,现在我希望这个Combobox可以编辑,以便用户可以相应地编辑它。我已经将combobox的可编辑属性设置为true,但没有成功。下面是代码

            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
    负责通过
    标签显示单元格值,单元格值取自行所代表的项目。进入编辑模式时,
    标签
    变为一个组合框
    。当您从
    组合框中选择新值时,当
    表格单元格
    失去焦点时,它将提交回从中获取其原始值的“项”。如果你不想要这种行为,你需要编写你自己的细胞工厂回调。我是新手,不知道怎么做。你能给我看一下同样的代码吗?