当前位置: 首页 > 知识库问答 >
问题:

带有多个ActionListeners的MVC模式

谢锦程
2023-03-14

我正在用MVC设计模式编写GUI程序。我有一个关于使用ActionListeners的问题。

根据MVC模式,所有ActionListeners都应该包含在Controller中。通常情况下,我相信它们会被实现到内部类中。

然而,如果有许多按钮等,那么将这些内部类移动到同一个包中的单独文件是一个好主意吗?我知道他们将不再是内部类,那么这是一个好的设计吗?由于我需要使用Controller类中的局部变量,我可以简单地设置它们一个默认访问吗?

控制器类:

public class Controller{ 

    GoogleMaps gMaps = null; // model
    GUI gui = null;          // view 

    public Controller(GoogleMaps gMaps, GUI gui) {
        super();
        this.gMaps = gMaps;
        this.gui = gui; 

        this.gui.addButtonDownListener(new ButtonDownListener(this));
    }
}

ButtonDownLister类:

class ButtonDownListener implements ActionListener{

    private BudgetController buttonDownListener;

    public ButtonDownListener(BudgetController buttonDownListener) {
        super();
        this.buttonDownListener = buttonDownListener;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // some ActionEvent handler
    }
}

共有1个答案

高宸
2023-03-14

可能不是完美的MVC,但您仍然可以使用内部类ActionListeners,它只是对实际执行工作的控制器进行调用。

因此//某些ActionEvent处理程序仍然在控制器中完成。

 类似资料:
  • 问题内容: 我目前正在编写模板Java应用程序,并且如果我想完全遵循MVC模式,就不确定ActionListener的位置。 该示例基于Swing,但与框架无关,而是Java中使用任何框架创建GUI的MVC的基本概念。 我从一个绝对简单的应用程序开始,该应用程序包含一个JFrame和一个JButton(以放置框架,从而关闭该应用程序)。此帖子后面的代码。没什么特别的,只是为了澄清我们在说什么。我还

  • 我目前正在编写一个模板Java应用程序,不知何故,如果我想清晰地遵循MVC模式,我不确定ActionListeners属于哪里。 这个示例是基于Swing的,但它不是关于框架的,而是关于Java中MVC的基本概念,使用任何框架来创建GUI。 null 查看:

  • 问题内容: 我想使用Spring MVC发布带有一些JSON数据的文件。因此,我开发了一项休息服务 当我从其他客户端发送请求时 ,出现下一个异常: 谁能帮助我解决这个问题? 我可以同时将Multipart和JSON发送到服务器吗? 问题答案: 这就是我使用JSON数据实现Spring MVC Multipart Request的方式。 带有JSON数据的分段请求(也称为混合分段): 基于Sprin

  • 我使用下面的代码在React组件中基于来自props的布尔值动态设置一个class Name:

  • 问题内容: 我需要构建一个具有多个窗口的应用程序。在其中一个窗口中,我需要能够玩一个简单的游戏,而另一个窗口必须显示问题并获得影响游戏的用户的响应。 (1)我想使用pygame来制作游戏。有一种 简单的 方法可以让pygame在多个窗口中运行吗? (2)如果没有简单的方法可以解决(1),是否有一种简单的方法来使用其他一些Python GUI结构,从而允许我同时运行pygame和另一个窗口? 问题答

  • 问题内容: 在Go模板中,有时将正确的数据传递到正确的模板的方式令我感到尴尬。用流水线参数调用模板看起来就像只用一个参数调用函数。 假设我有一个Gophers网站,有关Gophers。它具有一个主页主模板和一个用于打印Gophers列表的实用程序模板。 http://play.golang.org/p/Jivy_WPh16 输出: 现在,我想在子模板中添加一些上下文:在列表内以不同的方式设置名称“