3

场景:我在 JavaFx 中创建了一个包含 2 列的表视图。我已经用一些示例数据填充了表格。现在,我必须编辑表格的单元格。为此,我创建了一个覆盖 TableCell 类的新类 (ComboTableCell)。这个类定义了一个可编辑组合框的单元格工厂,如果我使用鼠标点击遍历表格,它可以完美地工作。但是,当我使用键盘选项卡遍历时,我遇到了一个问题。

问题:使用选项卡选择第一个单元格时,组合框及其编辑器获得焦点。因此用户可以直接开始编辑单元格。

问题是,当我完成第一个单元格的编辑后,我使用 TAB 按钮移动到下一个单元格,但是,下一个单元格中的组合框没有获得焦点,因此用户无法像在第一个单元格的情况。即使表格没有单元格也没有获得焦点。

当我按 Tab 时,我尝试使用下面的代码将焦点重新回到组合框

Platform.runLater(new Runnable() {
        @Override
        public void run() {
            comboBox.requestFocus();

            //I have also tried with comboBox.getEditor().requestFocus(); but still the issue persists
            comboBox.getEditor().selectAll();
        }
    });

请帮我解决这个问题。

4

1 回答 1

1

我必须面对同样的问题,我刚刚找到了解决方法。如果您将其设置为可编辑组合,它将解决您的问题。

ComboBox cb = new ComboBox(); cb.setEditable(true);

于 2016-05-09T13:56:37.470 回答