【问题标题】:How to deal with events in Java MVC如何处理 Java MVC 中的事件
【发布时间】:2014-05-18 18:42:21
【问题描述】:

我正在用 Java 创建我的第一个“更大”的应用程序。由于 MVC 是我所知道的唯一模式,因此我决定使用它。但是这个概念有问题。

例如。我需要从 2 个地方(从框架中的 ButtonMenuItem)发射一个 Action(或一般事件)。它必须在至少 2 个地方和模型中进行更改。

我有一些想法,但它们似乎是错误的:

  1. 将控制器对象传递给每个视图元素,因此新创建的操作可以使用控制器的方法来修改应用程序的其余部分。
  2. 将控制器设为静态(出于相同的原因)
  3. 只制作控制器模型监听器

请告诉我如何构建它。或者给我一些易于分析的应用程序的链接。

我的项目来源在这里,如果有人想看看:https://github.com/Arrvi/ColorExtractor

【问题讨论】:

  • 暂时,我以为你在谈论 Web 应用程序中的 mvc。
  • 是的。我的错。它只是一个普通的摇摆应用程序。
  • 从头开始的想法 #2 很糟糕,非常糟糕。您的控制器可以将相同的操作注入到按钮和菜单项中。
  • 您的控制器需要访问您的视图。将您的方法放在框架类中,并从 JButton 操作侦听器和菜单栏类中调用它。阅读我的 Qlocktwo with Java Swing 文章,了解我如何将 Swing MVC 应用程序组合在一起。
  • @GilbertLeBlanc 谢谢Wayback Machine。谢谢吉尔伯特。

标签: java swing events model-view-controller


【解决方案1】:

使用Action 封装功能以供不同组件(例如菜单和按钮)使用是正确的。引用了一系列示例here。至于MVC,回想一下Swing 使用separable model architecture,检查过here。实际上,用户是控制器,而不是每个交互都需要通过应用程序的控制器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 2012-02-16
    • 2013-05-30
    • 1970-01-01
    相关资源
    最近更新 更多