gpt4 book ai didi

java - 使用 MVC 的多个 JPanel 或 JFrame

转载 作者:行者123 更新时间:2023-11-30 07:58:46 24 4
gpt4 key购买 nike

我读过很多关于用 Java 实现 MVC( Model View Controller )设计模式的文章/解释,例如:

http://www.leepoint.net/GUI/structure/40mvc.html

GUI not working after rewriting to MVC

并且还访问过其他几个(包括 SO 中的那些)。

我很清楚这些链接中的解释内容。但是,当我们有多个 JPanel/JFrame 时,我们应该如何实现 MVC?假设我想实现一个可以同时显示多个 JFrame 的程序。

问题:尽管有多个 JFrame,我们是否应该尝试只拥有 3 个类(模型、 View 、 Controller ),还是应该为每个 JFrame 拥有一个单独的 View 类?

我知道我们可以使用观察者模式来让各种框架进行通信。

<小时/>

至于这个来自SO的链接,只有1个解决方案不能解决我上面的问题:Java MVC multiple JFrame

我还知道The Use of Multiple JFrames: Good or Bad Practice? 。但假设我将有多个可能同时显示的 JFrame。我更关心的是如何用MVC来实现。

最佳答案

Should we try to only have three classes (Model, View, Controller) despite having multiple JFrames or should we have a separate View class for each JFrame?

该模式不指定三个类;它描述了 interaction三个实例之间。正如所讨论的here ,该模式可以在 Swing 应用程序中出现任意次数。它是一个设计元素,而不是万能药。 observer pattern 中的任何一个提到的实现here会服务。如果您有compelling reason对于多个 JFrame 实例,请考虑使用无模式对话框,每个对话框都有一个 Observable委托(delegate),对相关 View 组件进行分组。

Is it alright if I create more than one class which represents view, e.g. five classes which act as view?

是的,Swing 应用程序可以包含多个 View 。 Swing 的separable model architecture提供多个 View 组件,每个组件都监听自己的模型并可以充当自己的 Controller 。例如,JTable 是一个监听其 TableModel 的 View 组件,但它充当 Controller 来处理单元格内的编辑。而且,如图herehere ,多个 View 可以监听同一个模型。

关于java - 使用 MVC 的多个 JPanel 或 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32246927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com