JavaFX - 如何获取控制器对象的实例

时间:2015-12-24 20:54:15

标签: java javafx

如何获取对控制器类的引用?

这是我的代码段。

Parent root = FXMLLoader.load(getClass().getResource("my.fxml"));
stage.setScene(new Scene(root, 500, 500));
MyController c = stage.getControllerInstance(); <-- HOW???
c.setATextValue("Hello world"); //Set initial value
stage.show();

Controller类在FXML的 fx:controller 属性中指定。实例将在后台自动创建。我需要访问该实例才能在表单中设置初始值。

我知道我可以在XML中设置初始值,但我需要在运行时设置它们。

1 个答案:

答案 0 :(得分:13)

不要使用静态FXMLLoader.load(...)方法。而是创建一个FXMLLoader实例并在实例上调用load()。然后你可以拨打getController()

FXMLLoader loader = new FXMLLoader(getClass().getResource("my.fxml"));
Parent root = loader.load();
MyController c = loader.getController();

stage.setScene(new Scene(root, 500, 500));