我正在尝试从 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,但控件没有获得焦点。
最佳答案
来自节点的 requestFocus 方法的 JavaFX Api 文档:
To be eligible to receive the focus, the node must be part of a scene, it and all of its ancestors must be visible, and it must not be disabled.
那么你究竟从哪里调用这段代码呢?确保在您调用 requestFocus 时,您的控件已经是场景/舞台的一部分并且调用是在 JavaFX 应用程序线程中完成的(这可以通过 Platform.runLater()
调用来确保) ).
关于JavaFX TextInputControl requestFocus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361345/