2

我正在尝试从 TextInputControl 调用 requestFocus 方法。没有成功。当我打开一个新选项卡时,我想将焦点设置在 TextInputControl 上。我正在这样做:

tab.setContent(anchor);
tabPane.getTabs().add(tab);

SingleSelectionModel<Tab> selectionModel = tabPane.getSelectionModel();
selectionModel.select(tab);

focusTopLeftInputArea(anchor);

和 focusTopLeftInputArea 找到一个 TextInputControl“ti”并调用 ti.requestFocus()。

focusTopLeftInputArea 可以很好地找到 TextInputControl 但控件没有获得焦点。

4

1 回答 1

1

来自 Node 的 requestFocus 方法的 JavaFX Api 文档:

为了有资格获得焦点,节点必须是场景的一部分,它和它的所有祖先都必须可见,并且不能被禁用。

那么你究竟从哪里调用这段代码呢?确保在调用 requestFocus 时,您的控件已经是场景/舞台的一部分,并且调用是在 JavaFX 应用程序线程中完成的(这可以通过调用来确保Platform.runLater())。

于 2012-11-14T13:24:03.930 回答