使用 MVC 模型更改 Java 中的视图
Changing Views in Java using MVC model
所以我在网上阅读了很多关于 MVC 的内容,并在 class 中了解了它,但我仍然迷失在一个方面 - 更改和显示视图。我知道视图是 GUI,它们将用户输入传递给控制器,但我很难理解以下内容的工作方式:
- 查看显示的A
- 用户点击视图 A 上的按钮
- 控制器通知,告诉模型
- 模型告诉控制器显示视图 B
- 控制器显示视图 B?!?
这里的最后两行是我不明白如何实现的。如果View没有变化到另一个View,我知道使用Observer/Observable接口来更新View。但在我的例子中,有一个主屏幕和一个游戏屏幕,当用户单击主屏幕上的播放按钮时,我希望 "view" 和 GUI 更改为 GameScreen。我想使用 2 个不同的视图(我认为)。
我在构建我的代码来实现这一点时遇到问题,我不知道将 ActionEventListeners 放在哪里
假设您只是切换视图,这就是顺序。
- 查看显示的A
- 用户点击视图 A 上的按钮
- 按钮控制器告诉视图显示视图 B
- 视图显示视图 B
模型完全没有涉及。其他控制器可以更改模型。
编写 Java Swing 应用程序时,我就是这样做的。
- 视图可以从模型中读取值。
- 视图可能不会更新模型。
- 控制器将更新模型。
- 控制器可以重新验证/重新绘制视图。
要查看真实 Swing 应用程序中模型/视图/控制器模式的示例,请查看我的文章,Retro Snake Game。
所以我在网上阅读了很多关于 MVC 的内容,并在 class 中了解了它,但我仍然迷失在一个方面 - 更改和显示视图。我知道视图是 GUI,它们将用户输入传递给控制器,但我很难理解以下内容的工作方式:
- 查看显示的A
- 用户点击视图 A 上的按钮
- 控制器通知,告诉模型
- 模型告诉控制器显示视图 B
- 控制器显示视图 B?!?
这里的最后两行是我不明白如何实现的。如果View没有变化到另一个View,我知道使用Observer/Observable接口来更新View。但在我的例子中,有一个主屏幕和一个游戏屏幕,当用户单击主屏幕上的播放按钮时,我希望 "view" 和 GUI 更改为 GameScreen。我想使用 2 个不同的视图(我认为)。
我在构建我的代码来实现这一点时遇到问题,我不知道将 ActionEventListeners 放在哪里
假设您只是切换视图,这就是顺序。
- 查看显示的A
- 用户点击视图 A 上的按钮
- 按钮控制器告诉视图显示视图 B
- 视图显示视图 B
模型完全没有涉及。其他控制器可以更改模型。
编写 Java Swing 应用程序时,我就是这样做的。
- 视图可以从模型中读取值。
- 视图可能不会更新模型。
- 控制器将更新模型。
- 控制器可以重新验证/重新绘制视图。
要查看真实 Swing 应用程序中模型/视图/控制器模式的示例,请查看我的文章,Retro Snake Game。