java窗体 mvc_JAVA Swing MVC-主控制器?

我在设计要开发的应用程序体系结构时遇到了一些麻烦。我正在研究JAVA,因此开始研究此应用程序是因为我想加深对JAVA,体系结构和模式的整体了解。我想遵循指导方针来制作可复用的,低耦合的应用程序,就像应该的那样。该应用程序只有一个JFrame,但内部有几个JPanel,每个JPanel代表应用程序的一个模块。

问题是:在JAVA Swing中,如何实现适当的MVC模式?我在如何理解应该完成的方式上感到挣扎。

我是否应该有一个主Controller类,其中包含对所有其他Controller的引用?(我在此处有一张图片对此进行了演示:https

:

//docs.google.com/file/d/0B7tBdn5slIFeY2FoSmxESTREQ1k/edit?usp=sharing)

在这种情况下,所有需要更改要显示的模块的事件都应重定向到主控制器吗?

还是应该仅将JFrame与应用程序的控制器耦合,并直接与它们通信?

基本上,我想知道是否需要开设一个“管理”所有其他课程的课程。我已经阅读了一些解释和不同的观点,但是我认为这更加具体。

希望我已经说清楚了(也希望我的解释比我的绘画要好:))。

编辑: 应用程序用法的示例:

在应用程序的整个生命周期中只有一个(唯一一个)JFrame;

菜单将在左侧,如BorderLayout.WEST所示;

应用程序的当前模块将位于中间,如BorderLayout.CENTER中;

当用户按下菜单中的一个按钮时,相应的模块将被加载到BorderLayout.CENTER中;

菜单(视图)是否应该具有自己的Controller,并且此Controller与JFrame通信?然后,JFrame将新模块加载到它的Layout中吗?还是JFrame应该有自己的控制器(或模型,如Gilbert

Le Blanc所说)?

我知道这可能看起来很具体,或者很容易理解,但是每次想到台式机应用程序时,我都很难理解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Swing 中,可以使用以下方法在窗体之间传递值: 1. 使用构造函数传递值:在一个窗体中创建一个新的窗体时,可以通过构造函数传递值。例如: ``` public class FirstFrame extends JFrame { private String value; public FirstFrame(String value) { this.value = value; } // ... } ``` 在另一个窗体中创建 FirstFrame 时,可以传递一个值: ``` FirstFrame frame = new FirstFrame("Hello"); ``` 2. 使用方法传递值:可以在一个窗体中定义一个方法来设置值,然后在另一个窗体中调用该方法。例如: ``` public class FirstFrame extends JFrame { private String value; public void setValue(String value) { this.value = value; } // ... } ``` 在另一个窗体中创建 FirstFrame 时,可以先创建一个实例,然后调用 setValue 方法: ``` FirstFrame frame = new FirstFrame(); frame.setValue("Hello"); ``` 3. 使用静态变量传递值:可以在一个类中定义一个静态变量来存储值,然后在另一个窗体中访问该静态变量。例如: ``` public class Data { public static String value; } public class FirstFrame extends JFrame { public void setValue(String value) { Data.value = value; } // ... } public class SecondFrame extends JFrame { public void getValue() { String value = Data.value; // ... } // ... } ``` 在 FirstFrame 中调用 setValue 方法来设置值,在 SecondFrame 中调用 getValue 方法来获取值。 以上是三种常用的在 Java Swing 中传递值的方法,具体使用哪种方法取决于你的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值