如何实例化与fxml和控制器对应的对象

时间:2018-02-18 09:45:03

标签: java javafx javafx-2 fxml fxmlloader

让我们说我有一个控制器Ctr和一个fxml文件file.fxml对应。
我想声明并实例化一个对象,我可以在屏幕上显示与该fxml和控制器相对应的对象 我有A类包含这个对象 问题是:
如果将此对象声明为Ctr(控制器),则它不再可显示,因为我无法将其作为子项添加到其他组件(例如stackpane)。 如果使用FXMLLoader,返回的加载类是未知的,我不能将其存储为Ctr对象。

1 个答案:

答案 0 :(得分:0)

您无法知道FXMLLoader的返回类肯定,但是因为您选择了fxml文件,您必须在哪个类中投射controller

Stage primaryStage = new Stage();
FXMLLoader fx = new FXMLLoader(Paths.get("../specialView4X.fxml").toUri().toURL());
Scene scene = new Scene(fx.load());
primaryStage.setScene(scene);
primaryStage.show();
primaryStage.centerOnScreen();    
SpecialView4XController control = (SpecialView4XController) fx.getController();

这是为了启动一个新窗口,重新使用现有窗口,在其上使用现有对象广告<{1}}