如何获取对控制器类的引用?
这是我的代码片段.
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类在FXX中的fx:controller属性中指定.实例将在后台自动创建.我需要访问该实例才能在表单中设置初始值.
我知道我可以在XML中设置初始值,但我需要在运行时设置它们.
不要使用静态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));