【发布时间】:2014-05-18 18:42:21
【问题描述】:
我正在用 Java 创建我的第一个“更大”的应用程序。由于 MVC 是我所知道的唯一模式,因此我决定使用它。但是这个概念有问题。
例如。我需要从 2 个地方(从框架中的 Button 和 MenuItem)发射一个 Action(或一般事件)。它必须在至少 2 个地方和模型中进行更改。
我有一些想法,但它们似乎是错误的:
- 将控制器对象传递给每个视图元素,因此新创建的操作可以使用控制器的方法来修改应用程序的其余部分。
- 将控制器设为静态(出于相同的原因)
- 只制作控制器模型监听器
请告诉我如何构建它。或者给我一些易于分析的应用程序的链接。
我的项目来源在这里,如果有人想看看:https://github.com/Arrvi/ColorExtractor
【问题讨论】:
-
暂时,我以为你在谈论 Web 应用程序中的 mvc。
-
是的。我的错。它只是一个普通的摇摆应用程序。
-
从头开始的想法 #2 很糟糕,非常糟糕。您的控制器可以将相同的操作注入到按钮和菜单项中。
-
您的控制器需要访问您的视图。将您的方法放在框架类中,并从 JButton 操作侦听器和菜单栏类中调用它。阅读我的 Qlocktwo with Java Swing 文章,了解我如何将 Swing MVC 应用程序组合在一起。
-
@GilbertLeBlanc 谢谢Wayback Machine。谢谢吉尔伯特。
标签: java swing events model-view-controller