首页 文章

JavaFX:表视图中的组合框焦点问题

提问于
浏览
3

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

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

问题是,当我完成第一个单元格的编辑后,我使用TAB按钮移动到下一个单元格,但是,下一个单元格中的组合框没有获得焦点,因此用户无法直接开始输入第一个细胞的情况 . 即使是 table ,细胞也没有得到关注 .

当我按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();
        }
    });

请帮我解决这个问题 .

1 回答

  • 1

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

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

相关问题