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

ノードのrequestFocusメソッドのJavaFX Apiドキュメントから:

フォーカスを受け取る資格を得るには、ノードがシーンの一部である必要があり、ノードとそのすべての祖先が表示されている必要があり、無効になっていてはなりません。

では、このコードを正確にどこから呼び出すのでしょうか? requestFocus を呼び出すときに、コントロールがすでにシーン/ステージの一部であり、呼び出しが JavaFX アプリケーション スレッドで行われていることを確認してください (これは、 を介して呼び出すことで確認できますPlatform.runLater())。

于 2012-11-14T13:24:03.930 に答える