首页 > 解决方案 > 如何在 javafx 的表格单元中使组合框可编辑?

问题描述

我已经使用 ComboBoxTableCell 在表格单元格中设置了一个组合框,现在我希望这个组合框可编辑,以便用户可以相应地对其进行编辑。我已将组合框的可编辑属性设为 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);

我怎样才能使这个组合框可编辑?很高兴有任何建议。

标签: javafxcomboboxtablecell

解决方案


ComboBoxTableCell和其他类似的类)在其 Javadoc 中不太清楚。正确使用的要求ComboBoxTableCell是:

  1. TableColumn必须是可编辑的。
  2. TableView它所属的 也必须是可编辑的。

如果您需要确保其他列不可编辑,则显式调用TableColumn.setEditable(false)这些列。

作为旁注,你不需要写setOnEditCommit(),我不确定ComboBoxTableCell你这样做是否会破坏。


推荐阅读