我一直在学习一些关于JavaFX的2,但我已经打了具有可编辑的表格单元格的问题,我无法找到一个解决方案了。 为了节省粘贴了大量的代码,我已经创建了一个包含JavaFX的文档只有TableView中示例项目: http://docs.oracle.com/javafx/2/ui_controls/table-view.htm
如果你运行了这个代码,您看到此行为:
- 单击行选择该行。
- 单击选定行的单元格转换单元格中的文本字段,以便它已准备好进行编辑。
- 单击文本字段允许的内容进行编辑。
问题是,这三次点击去的地步,细胞可以编辑的点。 当在创建(例如步骤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正在重点背面显示的文本字段之前。
因此,问题是我怎么给重点的文本字段编辑开始时?