我用什么似乎是一个典型的JavaFX从FXML文件加载时start()方法:如何使用JavaFX中的首选项加载FXML?
public void start(Stage stage) throws Exception {
this.stage = stage;
Scene scene = new Scene(FXMLLoader.<AnchorPane>load(getClass().getResource("layout.fxml")));
stage.setScene(scene);
stage.show();
}
我有一些变量对应的控制,如:
@FXML private TextField userName;
我想从首初始化用户名的值,如:
prefs = Preferences.userRoot().node(this.getClass().getName());
userName.setText(prefs.get("userName", userName.getText()));
但是我什么时候能打电话吗?如果我的stage.show()之前做到这一点,的userName尚未实例化。
TIA
过得好控制器?你是否在控制器类中创建了Preferences对象? –
我在FXML中设置控制器,是的,我在那里创建首选项。请参阅下面的问题答案,并感谢您的关注。 – Michael