【问题标题】:JavaFX - how to set default active controlJavaFX - 如何设置默认活动控件
【发布时间】:2012-11-01 08:43:19
【问题描述】:

我有一个单窗口 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 文件中选择一个 TextFields 以默认处于活动状态。这个怎么做?我尝试在控制器的初始化方法中调用 requestFocus 方法,但没有成功。我在 AnchorPane 类中的 TextField 类中都没有找到任何合适的属性(AnchorPane 是 fxml 控件树的根元素)。

【问题讨论】:

    标签: java javafx-2 javafx


    【解决方案1】:

    尝试使用PlatForm.runlater 包装您的requestFocus() 电话

    Platform.runLater(new Runnable() {
        public void run() {
            textField.requestFocus();
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2013-06-22
      • 2021-02-01
      • 2016-10-08
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 2011-10-03
      • 2015-11-01
      相关资源
      最近更新 更多