java JavaFX从子控制器到达主控制器
在this page from oracle上,说明了如何在主控制器中插入子控制器:
<VBox fx:controller="com.foo.MainController">
...
<fx:include fx:id="dialog" source="dialog.fxml"/>
...
</VBox>
public class MainController extends Controller {
@FXML private Window dialog;
@FXML private DialogController dialogController;
...
现在,我想知道,如何从子控制器(在本例中是DialogController
)到达MainController
实例
谢谢你的帮助
# 1 楼答案
我建议不要这样做。如果
DialogController
依赖于MainController
,那么它不能独立于MainController
使用,这会在两者之间增加不必要的耦合(即破坏封装)当
DialogController
中的某些状态发生变化时,您可能只希望在MainController
中发生一些事情。因此,您应该在DialogController
中将该状态作为可观察属性公开,并从主控制器观察它:然后
如果您真的想从
DialogController
访问MainController
,那么您可以按照注释中的建议,通过“手动”将MainController
注入到DialogController
中。然而,这是糟糕的设计,国际海事组织及