【发布时间】:2023-03-04 00:42:01
【问题描述】:
我拥有的是一个标准的 JavaFX 应用程序:Main.java, MainController.java & main.fxml。为了添加自定义组件,我创建了CustomComponentController.java 和custom_component_controller.fxml。
问题是在CustomComponentController 方法中我需要引用MenuController 中的其他方法和标准组件。我将public static MainController mc; 添加到MainController 类主体中,以便可以从CustomComponentController (MainController.mc.neededMethod()) 中看到它。然后我尝试在 MainController.initialize() 方法 (mc = this;) 中将所有内容传递给它 - 在调试此断点时,我看到 this 充满了组件实例,但之后 mc 仍然是空组件。
问题是如何引用MainController 的运行实例以在其他类中使用其组件和方法,并相互交叉引用不同的自定义组件?如何将MainController代码从组件的事件处理程序和辅助方法中全部移到组件自己的类中?
我尝试了以下方法,但没有办法让它们正常工作:
Accessing FXML controller class
How can I access a Controller class in JavaFx 2.0?
JavaFX 2.0 + FXML. Updating scene values from a different Task
JavaFX 2.2 -fx:include - how to access parent controller from child controller
【问题讨论】:
标签: reference controller javafx instance custom-component