Java MVC/MVP在Swing应用程序中是如何工作的?
我被要求修改现有的Java MVC/MVP在Swing应用程序中是如何工作的?,java,swing,model-view-controller,mvp,jdialog,Java,Swing,Model View Controller,Mvp,Jdialog,我被要求修改现有的JDialog,它是内部Swing应用程序的子容器。我将从头开始重新编写对话框,并被要求负责使Swing应用程序类似于真正的MVC/MVP体系结构(因此我的JDialogReform将是对应用程序本身的许多亲MVC更改中的第一个) 我理解MVC/MVP,因为它与web应用程序有关: 控制器-是web应用程序框架用来处理HTTP请求的组件;通常由多个方法组成,其中每个“控制器方法”处理对稍微不同的URL的请求 模型—表示特定于调用的数据的DAO或POJO/bean;控制器从数据
JDialog
,它是内部Swing应用程序的子容器。我将从头开始重新编写对话框,并被要求负责使Swing应用程序类似于真正的MVC/MVP体系结构(因此我的JDialog
Reform将是对应用程序本身的许多亲MVC更改中的第一个)
我理解MVC/MVP,因为它与web应用程序有关:
- 控制器-是web应用程序框架用来处理HTTP请求的组件;通常由多个方法组成,其中每个“控制器方法”处理对稍微不同的URL的请求
- 模型—表示特定于调用的数据的DAO或POJO/bean;控制器从数据库获取模型并将其注入视图
- 视图-最终生成HTML/JSP并发送回客户机/请求者的机制
本身JDialog
- 构成对话框“视图”的所有UI小部件(
,JButtons
,等等)JTextFields
- 所有UI小部件的操作/事件侦听器共同构成了“业务逻辑”,用于说明当用户与视图交互时对话框将如何操作
- 所有其他“UI粘合代码”(设置哪些小部件将被启用/禁用,设置它们在屏幕上的大小和位置,设置它们的工具提示文本等)
- 还有很多其他的东西
JDialog
所需的所有代码?此外,如果有任何文章、教程或现有的OpenSouce项目展示MVC/MVP Swing应用程序,我也对它们感兴趣。提前谢谢 我想这样做:
MyModel model = engine.getDataFromDatabase();
myController.displayDataOnMyCustomView(myPresenter, model);
在控制器端,可能会删除很多侦听器,根据模型设置数据,设置大小、位置和任何其他表示内容的状态,最后重新添加侦听器
myPresenter
应该是一个自定义的JDialog
,在其ui树上有各种基本ui元素(组件
) 如前所述,Swing MVC依赖于用于将模型更改传播回任何侦听视图的。因此,很大程度上取决于JDialog
中的组件。如果您的对话框必须是非模态的,那么示例和示例可能会有所帮助。因为有很多有效的方法,我只讨论我使用的方法:一种改进的MVP设计,它也借鉴了
基本上,用尽可能少的应用程序逻辑创建GUI(目标是零)。创建具有GUI句柄的“presenter”类(类似于控制器),并将适当的侦听器注入UI
一些好处: