我正在使用swing进行gui系统,我正在尝试遵循模型 - 视图 - 控制器模型。在实现我的事件系统时,我有点困惑,以便在gui上发生事情时视图可以与控制器通信。
我的gui是动态的,所以我有一个包含其他JPanels的侧面板。其中一个碰巧是LoginPanel,当有人试图登录时会抛出LoginEvent。由于我希望我的SidePanel是动态的,因此SidePanel不知道LoginPanel是否存在,它只是绘制了它被绘制的内容。
当我启动程序时,模型和视图分别启动,控制器将传递模型和视图的实例。
使用MVC系统,当LoginPanel在我的gui上是动态的并且一直不存在时,如何告诉LoginPanel一个控制器(实现LoginEventListener)想要听它?
答案 0 :(得分:0)
现有和可见之间存在差异。只需让LoginPanel
始终存在,但使用setVisible
隐藏并显示它。这将是最简单的解决方案。