我有单窗口 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 控件树的根元素)。
尝试用
requestFocus()
结束您的 Platform.runLater
通话
Platform.runLater(new Runnable() {
public void run() {
textField.requestFocus();
}
});