使用 MVC 模型更改 Java 中的视图

Changing Views in Java using MVC model

所以我在网上阅读了很多关于 MVC 的内容,并在 class 中了解了它,但我仍然迷失在一个方面 - 更改和显示视图。我知道视图是 GUI,它们将用户输入传递给控制器​​,但我很难理解以下内容的工作方式:

这里的最后两行是我不明白如何实现的。如果View没有变化到另一个View,我知道使用Observer/Observable接口来更新View。但在我的例子中,有一个主屏幕和一个游戏屏幕,当用户单击主屏幕上的播放按钮时,我希望 "view" 和 GUI 更改为 GameScreen。我想使用 2 个不同的视图(我认为)。

我在构建我的代码来实现这一点时遇到问题,我不知道将 ActionEventListeners 放在哪里

假设您只是切换视图,这就是顺序。

  • 查看显示的A
  • 用户点击视图 A 上的按钮
  • 按钮控制器告诉视图显示视图 B
  • 视图显示视图 B

模型完全没有涉及。其他控制器可以更改模型。

编写 Java Swing 应用程序时,我就是这样做的。

  • 视图可以从模型中读取值。
  • 视图可能不会更新模型。
  • 控制器将更新模型。
  • 控制器可以重新验证/重新绘制视图。

要查看真实 Swing 应用程序中模型/视图/控制器模式的示例,请查看我的文章,Retro Snake Game