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

时间:2012-11-12 21:36:34

标签: java javafx-2 javafx

我有一个单窗口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控件树的根元素)。

1 个答案:

答案 0 :(得分:10)

尝试使用requestFocus()

打包PlatForm.runlater来电
Platform.runLater(new Runnable() {
    public void run() {
        textField.requestFocus();
    }
});