JavaFX - 如何设置默认活动控件

dap*_*rog 5 java javafx javafx-2

我有一个单窗口JavaFX应用程序,是从JavaFX教程之一创建的.

我正在通过以下功能设置新的窗口内容:

private Initializable replaceSceneContent(final String fxml) throws Exception {

    // wczytanie fxml
    FXMLLoader loader = new FXMLLoader();
    InputStream in = Main.class.getResourceAsStream(fxml);
    loader.setBuilderFactory(new JavaFXBuilderFactory());
    loader.setLocation(Main.class.getResource(fxml));
    AnchorPane page;
    try {
        page = (AnchorPane) loader.load(in);
    } finally {
        in.close();
    }

    Scene scene = new Scene(page, w, h);
    stage.setScene(scene);
    return (Initializable) loader.getController();
}
Run Code Online (Sandbox Code Playgroud)

但我想从这个fxml文件中选择一个TextFields默认是活动的.这该怎么做?我试图在控制器的初始化方法中调用requestFocus方法,但它不起作用.我没有在AnchorPane类中找到TextField类中的任何合适属性(AnchorPane是fxml控件树的根元素).

inv*_*ant 11

尝试用你的requestFocus()电话打包PlatForm.runlater

Platform.runLater(new Runnable() {
    public void run() {
        textField.requestFocus();
    }
});
Run Code Online (Sandbox Code Playgroud)