当前位置: 首页 > 知识库问答 >
问题:

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

徐昊焜
2023-03-14

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

这是我的代码片段。

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:控制器属性中指定。实例在后台自动创建。我需要访问该实例才能在表单中设置初始值。

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

共有1个答案

邢皓
2023-03-14

不要使用静态FXMLLoader。加载(…) 方法。相反,创建一个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));
 类似资料:
  • 我正在寻找一种更好的方法来获取这个对象的事件处理程序中被单击对象的id。 我已经找到了: javafx将fx:id传递给fxml onAction方法中的控制器或参数 但那对我不起作用。 现在,我使用node类的getId()函数,如下所示: 但我不想只对按钮使用这种方法。

  • 我有一个简单的主: MainClassFXGUI.java 和三个fxml文件,其中一个包含其他两个文件 但是我有一个空指针异常,或者如果我移动handleButtonAction函数中对象'controller'实例化的代码,我没有任何错误,但是标签没有改变。 也许我可以在MainClassFXGUI.java中创建一个静态场景和一个静态阶段?但我不知道我该怎么用它们... MainClassF

  • 我有以下代码: 在fxml文件中有一个对控制器类的引用。如何获取控制器对象? fxml:

  • 问题内容: 我们有一个MVC(MVC4)应用程序,该应用程序有时可能会收到一个从第三方发送到我们特定URL(“ http://server.com/events/ ”)的JSON事件。JSON事件位于HTTP POST的正文中,而正文则严格为JSON(-不是在某些字符串字段中带有JSON的表单发布)。 如何在控制器主体中接收JSON主体?我尝试了以下内容,但一无所获 [编辑] :当我说 什么都没得

  • null 我在TopMenuButtons中有一个按钮,它具有openAssisstantStage()方法,打开新的小阶段: 对于这个阶段,我还有FXML文件和控制器(AssisstantController)。只有2个按钮-第一个按钮应该打开前一个阶段和关闭电流,但第二个按钮也应该打开普雷沃阶段,关闭电流,也打开一个特定的标签在我的标签视图和做一些其他逻辑例如。获取实际localDate: 我