使用MVC模型在Java中更改视图
所以我在网上读了很多关于MVC的书,并且在课堂上也学到了MVC,但我仍然在一个方面迷失了方向——改变和显示视图。我知道视图是GUI,它们将用户输入传递给控制器,但我很难理解以下内容的工作原理:使用MVC模型在Java中更改视图,java,user-interface,model-view-controller,Java,User Interface,Model View Controller,所以我在网上读了很多关于MVC的书,并且在课堂上也学到了MVC,但我仍然在一个方面迷失了方向——改变和显示视图。我知道视图是GUI,它们将用户输入传递给控制器,但我很难理解以下内容的工作原理: 查看显示的 用户单击视图上的按钮 控制器收到通知,通知模型 模型告诉控制器显示视图B 控制器显示视图B 这里的最后两行是我不明白如何实现的。如果视图没有更改为另一个视图,我知道使用Observer/Observable接口来更新视图。但在我的例子中,有一个主屏幕和一个游戏屏幕,当用户单击主屏幕上的Pl
- 查看显示的
- 用户单击视图上的按钮
- 控制器收到通知,通知模型
- 模型告诉控制器显示视图B
- 控制器显示视图B李>
为了实现这一点,我在构建代码时遇到了问题,我不知道将ActionEventListeners放在哪里假设您只是切换视图,这就是顺序
- 查看显示的
- 用户单击视图上的按钮
- 按钮控制器告诉视图显示视图B
- 视图显示视图B
- 视图可以从模型中读取值
- 视图可能不会更新模型
- 控制器将更新模型
- 控制器可以重新验证/重新绘制视图
要查看真实Swing应用程序中模型/视图/控制器模式的示例,请参阅我的文章。您的模型明确要求控制器提供另一个特定视图?如果是这样,那就不是这样做的。MVC的优点之一是,您可以切换视图以在同一个模型(如桌面或web ui)上工作。您可以发布相关代码吗?否则我们就只能在黑暗中拍摄了。我还在创建UML类图和序列图的阶段,所以我实际上没有任何代码。谢谢!这更清楚。当(我认为)模型根本不应该知道视图时,我不知道模型应该如何指定要显示的视图。@Mimi Sakarett:模型不知道视图。然而,视图了解模型。