Java的FX 2表格单元格编辑和焦点(Java FX 2 Table Cell Editing a

2019-09-16 19:03发布

我一直在学习一些关于JavaFX的2,但我已经打了具有可编辑的表格单元格的问题,我无法找到一个解决方案了。 为了节省粘贴了大量的代码,我已经创建了一个包含JavaFX的文档只有TableView中示例项目: http://docs.oracle.com/javafx/2/ui_controls/table-view.htm

如果你运行了这个代码,您看到此行为:

  1. 单击行选择该行。
  2. 单击选定行的单元格转换单元格中的文本字段,以便它已准备好进行编辑。
  3. 单击文本字段允许的内容进行编辑。

问题是,这三次点击去的地步,细胞可以编辑的点。 当在创建(例如步骤2)焦点的文本字段直接切换到文本字段我想要实现的是。

我的关于如何实现这一目标最好的猜测是,添加textField.requestFocus()到了年底startEditing()方法:

@Override
public void startEdit() {
    super.startEdit();

    if (textField == null) {
        createTextField();
    }
    setGraphic(textField);
    setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
    textField.selectAll();
    textField.requestFocus();
}

但是,这并不工作。 如果我添加一个焦点侦听器,该文本字段是什么,我觉得是它获得焦点但随后又失去它。 坚持在监听一个破发点,似乎表明的TableView正在重点背面显示的文本字段之前。

因此,问题是我怎么给重点的文本字段编辑开始时?

Answer 1:

能否请您更换线textField.requestFocus(); 有:

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

然后再试一次。



文章来源: Java FX 2 Table Cell Editing and Focus
标签: javafx-2