在 JavaFX 2 中,我创建了一个自定义 TableCell,它覆盖了 startEdit() 方法来请求焦点。因此,只要我在单元格上调用编辑命令,出现的编辑文本字段就会获得焦点。
下一步是将插入符号位置设置为文本字段的末尾。但由于未知原因,它似乎不起作用。它总是放在第一个字符之前。
这是我到目前为止所尝试的:
public void startEdit() {
if (!isEmpty()) {
super.startEdit();
createTextField();
setText(null);
textField.end();
setGraphic(textField);
((TextField)getGraphic()).end();
textField.end();
Platform.runLater(
new Runnable() {
@Override
public void run() {
getGraphic().requestFocus();
}
});
}
}
public void startEdit() {
if (!isEmpty()) {
super.startEdit();
createTextField();
setText(null);
setGraphic(textField);
textField.end();
Platform.runLater(
new Runnable() {
@Override
public void run() {
getGraphic().requestFocus();
textField.end();
((TextField)getGraphic()).end();
}
});
}
}
public void startEdit() {
if (!isEmpty()) {
super.startEdit();
createTextField();
setText(null);
textField.end();
setGraphic(textField);
((TextField)getGraphic()).end();
getGraphic().requestFocus();
((TextField)getGraphic()).end();
textField.end();
}
}
合乎逻辑的方法是请求关注文本字段,然后移动插入符号,但无论出于何种原因,它似乎都不起作用。
也许有人可以启发我?