是否可以将两个 FXML (JavaFX) 文件连接到一个控制器?
我无法通过更改每个 FXML 文件中的“fx:controller”来做到这一点...
有任何想法吗?
是的,你可以这样做。虽然,可以做到,我不推荐这种方法.
不要放置一个fx:controller
FXML 中的属性。创建一个新控制器并将同一控制器设置到单独的 FXMLLoader 实例中。
CustomerDialogController dialogController =
new CustomerDialogController(param1, param2);
FXMLLoader summaryloader = new FXMLLoader(
getClass().getResource(
"customerSummary.fxml"
)
);
summaryLoader.setController(dialogController);
Pane summaryPane = (Pane) summaryLoader.load();
FXMLLoader detailsLoader = new FXMLLoader(
getClass().getResource(
"customerDetails.fxml"
)
);
detailsLoader.setController(detailsController);
Pane detailsPane = (Pane) detailsLoader.load();
SplitPane splitPane = new SplitPane(
summaryPane,
detailsPane
);
我想创建一个控制器,因为我在控制器之间发送数据时遇到问题
IMO 使用共享控制器来共享数据并不是首选解决方案。
相反,可以在多个控制器之间共享数据,例如:
- 传递参数 JavaFX FXML https://stackoverflow.com/questions/14187963/passing-parameters-javafx-fxml
这里还有一个例子:
- JavaFX8 列表绑定类似于 xaml https://stackoverflow.com/questions/29042109/javafx8-list-bindings-similar-to-xaml
更好的是,请参阅:
- 将 MVC 与 JavaFx 一起应用 https://stackoverflow.com/questions/32342864/applying-mvc-with-javafx
- https://edencoding.com/mvc-in-javafx/ https://edencoding.com/mvc-in-javafx/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)