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

问题描述 投票:0回答:1

我有单窗口 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();
}

但我想从此 fxml 文件中选择一个文本字段默认处于活动状态。如何做到这一点?我尝试在控制器的初始化方法中调用 requestFocus 方法,但它不起作用。我在 AnchorPane 类中的 TextField 类中没有找到任何合适的属性(AnchorPane 是 fxml 控件树的根元素)。

java javafx-2 javafx
1个回答
10
投票

尝试用

requestFocus()
 结束您的 
Platform.runLater

通话
Platform.runLater(new Runnable() {
    public void run() {
        textField.requestFocus();
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.