当前位置: 首页 > 知识库问答 >
问题:

基本MVC模式和GUI

樊博雅
2023-03-14

我想要小费。如果您有一个JFrame,其中有许多JPanels,这些JPanels有十个JTextFields标签和一个Edit按钮,那么您将如何构造您的应用程序。

您是将所有代码放在JFrame中,还是从JPanel扩展并将所有代码包含在JFrame中?

纽扣呢?我想使用MVC模式,您将如何处理ActionListeners?是每一个都有一个自己的控制器,还是你只使用一个控制器?

共有1个答案

寇开畅
2023-03-14

我想这首先是一个风格和个人喜好的问题。这也取决于您的应用程序应该做什么以及如何做。

如果您的JPanels在某种程度上都非常相似,那么从JPanel进行扩展可能是有意义的。例如,如果每个面板都有10个按钮,其中按钮1总是对其对应的模型对象执行xyz()操作(特别是当这个对象对1个JPanel的所有按钮都是相同的时候),而按钮2执行abc()...

如果JPanels之间没有如此紧密的关联,我会将代码放在JFrame中,或者放在从外部设置整个GUI的第三个对象中。

与ActionListeners类似。如果您有很少的操作,我可能会选择一个控制器对象,以方便使用(不是很多文件)。如果您有很多不同的操作,我会将类似的操作分组到每组操作的一个controller-object中。

也就是说,最好从简单方法(YAGNI)开始,从JFrame/third对象开始执行所有操作,并拥有一个actionlistener,然后当您觉得拆分可以提供更干净或更灵活的设计时进行重构。

 类似资料:
  • 问题内容: 我发现在“真实的Swing生活”中最难掌握的设计模式之一是MVC模式。我浏览了该站点上的很多文章,讨论了该模式,但是我仍然不太清楚如何在Java Swing应用程序中利用该模式。 假设我有一个JFrame,其中包含一个表,几个文本字段和一些按钮。我可能会使用TableModel将JTable与基础数据模型“桥接”。但是,负责清除字段,验证字段,锁定字段以及按钮操作的所有函数通常都直接在

  • MVC Pattern代表模型 - 视图 - 控制器模式。 此模式用于分离应用程序的问题。 Model - 模型表示携带数据的对象或JAVA POJO。 如果控制器的数据发生变化,它也可以有更新控制器的逻辑 View - 视图表示模型包含的数据的可视化。 Controller - 控制器作用于模型和视图。 它控制数据流到模型对象,并在数据发生变化时更新视图。 它使视图和模型分开。 实现 (Impl

  • 主要内容:实现,步骤 1,Student.java,步骤 2,StudentView.java,步骤 3,StudentController.java,步骤 4,MVCPatternDemo.java,步骤 5MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View(视图) - 视图代表模型包含的数据的可

  • MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View(视图) - 视图代表模型包含的数据的可视化。 Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更

  • MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View(视图) - 视图代表模型包含的数据的可视化。 Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更

  • 快速浏览基本关系模式。 以下各部分使用的导入如下: from sqlalchemy import Table, Column, Integer, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_