JavaFX TextInputControl requestFocus

时间:2012-11-13 13:12:11

标签: java javafx-2 javafx

我试图从TextInputControl调用requestFocus方法。没有成功。 我想在打开一个新Tab时将焦点设置在TextInputControl上。我这样做:

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

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

focusTopLeftInputArea(anchor);

和focusTopLeftInputArea找到一个TextInputControl&#34; ti&#34;并调用ti.requestFocus()。

focusTopLeftInputArea可以很好地找到TextInputControl,但控件没有聚焦。

1 个答案:

答案 0 :(得分:1)

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

  

要有资格获得焦点,节点必须是场景的一部分,   它和它的所有祖先必须是可见的,而且绝对不可能   禁用。

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