Javafx 2 如何在JavaFX中使用首选项中的值加载FXML?
从FXML文件加载时,我使用的是一种典型的JavaFX start()方法:Javafx 2 如何在JavaFX中使用首选项中的值加载FXML?,javafx-2,Javafx 2,从FXML文件加载时,我使用的是一种典型的JavaFX start()方法: public void start(Stage stage) throws Exception { this.stage = stage; Scene scene = new Scene(FXMLLoader.<AnchorPane>load(getClass().getResource("layout.fxml"))); stage.setScene(scene);
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();
}
我想将用户名初始化为首选项中的值,如中所示:
prefs = Preferences.userRoot().node(this.getClass().getName());
userName.setText(prefs.get("userName", userName.getText()));
但我什么时候能打电话?如果在stage.show()之前执行此操作,则用户名尚未实例化
TIA使控制器实现可初始化,并将加载置于
初始化()
:
还请注意,您可以使用ResourceBundle
,并将默认值直接放入fxml
文件。只需创建my.properties
文件并在加载过程中使用它:
FXMLLoader.load(
getClass().getResource("layout.fxml"),
ResourceBundle.getBundle("my"));
然后,您可以在fxml中使用my.properties
中的属性:
<TextField fx:id="userName" text="%userName" />
您是如何获得控制器的?您正在控制器类中创建Preferences对象吗?我正在FXML中设置控制器,是的,我正在那里创建Preferences。下面是我问题的答案,谢谢你的关注。谢谢!实际上,我在翻阅了更多的JavaFX文档之后才发现了这一部分,但是关于引用FXML文件中的设置的提示听起来非常有用。现在我需要弄清楚如何捕获close事件并将值保存回来。你也能帮上忙吗?请写另一个问题,并提供更多细节。
FXMLLoader.load(
getClass().getResource("layout.fxml"),
ResourceBundle.getBundle("my"));
<TextField fx:id="userName" text="%userName" />