Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的MVC:如何在用户选择后打开第二个视图?_Java_Model View Controller - Fatal编程技术网

Java中的MVC:如何在用户选择后打开第二个视图?

Java中的MVC:如何在用户选择后打开第二个视图?,java,model-view-controller,Java,Model View Controller,根据教程,我用Java实现了MVC设计模式。这看起来很简单,我们小组开始编程时没有过多考虑。 我们有4个包模型,视图,控制器和主。主包只有一个类Main.java,可以说它连接了所有包 为了简化它:我们有3个视图、3个控制器和1个模型(以及1个主视图) 我们的设置方式是:每个视图中的按钮都有一个ActionListener。ActionListener事件被发送到相应的控制器类,并在那里处理该事件。当然,这需要Main.java类设置所有内容,即控制器需要了解视图和模型,视图需要了解控制器 目标

根据教程,我用Java实现了MVC设计模式。这看起来很简单,我们小组开始编程时没有过多考虑。 我们有4个包模型,视图,控制器和主。主包只有一个类Main.java,可以说它连接了所有包

为了简化它:我们有3个视图、3个控制器和1个模型(以及1个主视图)

我们的设置方式是:每个视图中的按钮都有一个ActionListener。ActionListener事件被发送到相应的控制器类,并在那里处理该事件。当然,这需要Main.java类设置所有内容,即控制器需要了解视图和模型,视图需要了解控制器

目标是首先显示SelectingApponentView,然后让用户选择打开GridView或NetworkSearchView。 我现在的问题是,如何根据用户的输入打开第二个视图,并为MVC的工作建立必要的连接?是否可以在Main.java中“等待”,直到用户做出选择


这可能是因为我们没有正确实现MVC,因此甚至需要进行一些结构更改。

“是否可以在Main.java中“等待”用户做出选择?”
--没有必要,因为您使用的是事件驱动的GUI库,因此您已经有了响应事件的控件,这是应该的。事件在控件中引发的行为将取决于模型的状态。我接受了你的暗示,仔细考虑了一下,解决办法很简单。谢谢
SelectingOpponentView.java
SelectingOpponentController.java

GridView.java
GridController.java

NetworkSearchView.java
NetworkSearchController.java

Model.java

Main.java