JavaFX TextInputControl requestFocus

标签 java javafx-2 javafx

我正在尝试从 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/

相关文章:

java - 如何在静态方法中使用实例变量

java - Java 中的动态转换

java - 客户端服务器应用程序 - Java 中的最佳方法

java - 对于用户数据库的“Use In Activity_main”类型,未定义 getactivity() 方法

java - 在带有数据库数据的列表中使用线程

java - 使用 FXML 文件中创建的 TableView 填充 JavaFX 中的 TableView

javafx-2 - 带有自定义项的 JavaFx 2 ChoiceBox

java - 使用 JavaFX 的确认对话框

Javafx 线性梯度重复行为

css - Java FX CSS @import 路径问题