我有一个单窗口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控件树的根元素)。
答案 0 :(得分:10)
尝试使用requestFocus()
PlatForm.runlater
来电
Platform.runLater(new Runnable() {
public void run() {
textField.requestFocus();
}
});