`
lzth
  • 浏览: 142241 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Swing MVC 结构

    博客分类:
  • Java
 
阅读更多
MVC 是 Model-View-Controller 的简称,即模型—视图—控制器。这个模式最早是应用在 Xerox PARC 的 SmallTakl 语言上,至今已经得到广泛的认可。

  下面就对 Java Swing MVC 的概念进行如下说明。


  ·模型(Model):是存储 Swing 组件数据的地方,例如 JTable 的 Model 会存储表格上的所有数据。负责维护数据。模型通常提供访问和修改数据的方法。当模型变化时,这个模型还把事件发送给已登记的视图,对此,视图根据模型的变化来更新自己。
  ·视图(View):指 Swing 组件的外观显示效果。负责提供模型的部分数据的可视图。
  ·控制器(Controller):响应用户在 Swing 组件上的具体操作,为视图处理事件。鼠标和动作监听器等 AWT 和 Swing 监听器都是 MVC 控制器。

  图1显示了这几个模块各自的功能及它们之间的相互关系。

MVC 需要很强的设计功能。分述如下:

  首先,应当把多个视图和控制器插入到单个模型中,这是 Swing 插入式界面样式的基础。

  其次,当模型改变时,模型的视图能够自动地得到通知。在一个视图中改变模型的属性,将导致模型其他的视图也随之更新。

  最后,由于模型独立于视图,所以,不需要修改模型来适应新类型的视图或控制器。

  (1)插入式视图和控制器

  Swing 容器把定位它们所包含的组件及确定这些组件大小的工作委托给一个布局管理器。布局管理器封装了布局组件的策略。例如,FlowLayout 布局管理器的策略是用组件的首选大小来安排组件的大小,并以从左到右、从上到下的顺序定位组件。

  封装的策略使它们是可插入的。例如,布局管理器可以在编译时,也可以在运行时插入到容器中。

  通过封装在视图中可视地表示数据的策略及封装控制器中处理事件的策略,MVC 体系结构提供了可插入视图和控制器。就像布局管理器可以插入到 AWT 和 Swing 组件中一样,视图和控制器也可以插入到模型中。

  (2)视图更新

  Swing (和 AWT )事件由向事件源登记了的事件监听器来处理。例如,按钮的激活事件由一个对象所处理,这个对象实现 ActionListener 接口,并且通过调用这个按钮的 addActionListener 方法向这个按钮进行了登记。

  事件源和监听器是 Observer 样式的一个例子,Observer 样式允许单个对象在所观察的对象修改时通知许多观察器。Observer 样式需要在被观察对象与它的观察器之间有一个很小的接口区。例如,上面描述的动作监听器可以是任何类型的对象,只要它实现 ActionListener 接口。而且,按钮除了知道如何和何时通过观察器之外,对观察器一无所知。

  当模型改变时,MVC 体系结构使用 Observer 样式来通知视图。模型可以有许多视图,所有的视图通常都用模型的通知来同步。而且,任何类型的视图都可以在不使模型本身有任务变化的情况下观察一个模型。

  事件由控制器处理,控制器根据事件的类型来改变模型一个或多个视图。

  模型维护一个视图列表,这些视图为获得模型变化通知已经向模型登记过了。当模型发生变化时,该模型通知已向此模型登记的每个视图。视图通常从该模型中获得信息以进一步澄清这个事件,接着再更新它们自己。

  MVC 的优点是:很久以来,MVC 体系结构一直是建立在 Smalltalk 应用程序的基础上。面向对象开发的最基础的方面是确认对象并在类中封装对象。例如,一个工资册应用程序可能确认雇员、工资等对象。在类中封装对象允许在对象间建立松散的联系,这样就减少了依赖性,增加了灵活性和再使用性。

  MVC 封装了3个在大多数图形应用程序都存在的通用对象:模型、视图和控制器。通过封装其他体系结构的优秀特性,MVC 应用程序比相应的传统应用程序更灵活和更具有使用性。

  Swing MVC 是典型 MVC 的专业版本,其设计目的是支持插入式界面模式而不是通用应用程序。Swing 轻量组件由下面的对象组成:


  ·一个维护组件的数据模型。
  ·UI 代表,它是一个带事件处理监听器的视图。
  ·一个扩展 JComponent 的组件。

  Swing 模型可以直接对应典型的MVC模型。这两个模型都维护数据并提供数据访问方法,当它们发生变化时,它们会通知监听器。

  Swing 组件把它们的界面样式交给一个UI代表来处理。UI代表与典型的MVC中的视图控制器组合相对应。从现在开始,控制器又称做监听器。Swing监听器通常作为UI代表的内部类来实现,并且根据组件所表现的复杂程序,组件代表可以有许多处理事件的内部类监听器。

  • 大小: 4.5 KB
分享到:
评论

相关推荐

    Swing MVC 代码示例

    Swing MVC模式的应用使得GUI程序的结构更加清晰,使得开发者能够更专注于各个部分的功能实现,同时也便于团队协作和后期的维护。通过深入理解并实践Swing MVC,可以构建出更加健壮和易于维护的Java桌面应用。

    auto_order.rar_JAVA Swing mvc_mvc java swing_swing mvc_swing mvc

    通过这个“auto_order”项目,开发者可以深入理解如何在实际项目中应用MVC模式,包括如何创建独立的组件、如何处理事件以及如何在Swing框架内优雅地组织代码结构。这样的学习将有助于提升开发者在Java Swing应用开发...

    java Swing MVC 实例

    Java Swing MVC 模型是Java GUI编程中一种常见的设计模式,用于将用户界面(View)、业务逻辑(Model)和控制逻辑(Controller)分离,以实现更清晰的代码结构和更好的可维护性。在这个实例中,我们将深入探讨Swing ...

    Java Swing MVC使用.rar

    总的来说,Java Swing MVC模式的运用使得在开发复杂的桌面应用程序时,可以更好地组织代码结构,提高代码的可读性和可维护性。通过理解并熟练掌握这一模式,你将能够创建出高效且用户友好的GUI应用程序。

    java swing mvc设计模式 分层思想 自助订餐系统

    Java Swing MVC设计模式与分层思想在自助订餐系统中的应用 Java Swing 是Java平台上的一个图形用户界面(GUI)工具包,它为开发者提供了一系列组件来构建桌面应用程序。在这个自助订餐系统中,开发人员利用Swing...

    Java-Swing-MVC使用

    ### Java Swing MVC 架构详解 #### 一、引言 在软件开发过程中,为了更好地组织代码并提高可维护性,设计模式的应用变得尤为重要。其中,Model-View-Controller(MVC)架构模式是一种非常流行的架构模式,尤其适用...

    Swing MVC 观察者 电子相册

    Swing MVC 模式在Java GUI编程中是一个重要的设计模式,它将用户界面(View)、模型(Model)和控制器(Controller)分离,使得代码结构更加清晰,易于维护和扩展。在电子相册应用中,这一模式的应用尤为重要,因为...

    在Java Swing中实现MVC设计模式(英文)

    在Java Swing中实现MVC...以上所述的MVC模式在Java Swing应用中的实现,不仅体现了设计模式在实际编程中的运用,而且还展示了如何将面向对象的原则应用到图形用户界面编程中,进而构建出结构清晰、便于维护的软件系统。

    JAVA swing (MVC)FTP客户端 (2)_javaftp客户端_familiarku3_

    此项目“JAVA Swing (MVC) FTP客户端”是基于Swing和FTP协议创建的一个桌面应用程序,它允许用户进行基本的FTP(File Transfer Protocol)操作,如上传、下载文件,并能展示上传和下载的速度。下面将详细解析这个...

    通过JavaSwing看透MVC设计模式PPT学习教案.pptx

    \n\n**总结**\nJavaSwing利用MVC设计模式,使组件的结构清晰,职责分明,提高了代码的可复用性和可维护性。通过理解模型、视图和控制器的职责,开发者可以更有效地构建和维护Swing应用的用户界面,同时也能更好地...

    基于MVC模型的swing图形组件的设计

    本文主要讨论了如何基于MVC(Model-View-Controller)设计模式,利用Java Swing库创建图形组件,特别是针对图(Graph)这一数据结构进行可视化设计。Swing作为Java标准库的一部分,提供了丰富的GUI组件,用于构建...

    swing教程 swing教程

    Swing 采用了一种 MVC 的设计范式,即"模型-视图-控制"(Model-View-Controller),其中模型用来保存内容,视图用来显示内容,控制器用来控制用户输入。 Swing 的外观感觉 Swing 采用了一种可插入的外观感觉...

    设备管理系统项目(Java_Swing+MySql+JDBC+项目设计文档)

    项目整体思路清晰,简单易上手,适合新手学习Java基础和数据库基础,并采用MVC设计模式。资源中附有《项目源码》、《项目配置教程》、《学习JavaSwing方法》、《项目设计文档》。如果不懂的小伙伴还可以加V或者私信...

    JAVA数据库MVC设计模式

    总结来说,这个项目是一个使用Java GUI和JDBC的数据库应用,应用了MVC设计模式来组织代码结构,提供了用户登录和注册功能,以及对数据库的基本操作。通过这个项目,开发者可以深入理解Java GUI编程、JDBC数据库操作...

    Swing插件下载,swing下载,java-swing下载,swing-plugin

    5. **模型-视图-控制器(MVC)**:Swing组件遵循MVC设计模式,使得代码结构清晰,易于维护。 6. **可定制性(Customizability)**:Swing组件可以通过继承和覆盖方法进行自定义,以满足特定需求。 7. **国际化...

    1119.基于MVC模式的Swing宿舍管理系统.zip

    基于MVC模式的Swing宿舍管理系统.zip" 提供的是一个使用MVC(Model-View-Controller)设计模式构建的Swing应用,旨在管理宿舍的相关事务。Swing是Java的一个图形用户界面(GUI)工具包,它提供了丰富的组件和功能,...

    欣赏Swing的大厦结构(意外的发现)

    例如,Swing的模型-视图-控制器(MVC)架构允许开发者分离业务逻辑和界面展示,但同时也可能导致一些初学者对事件处理和模型数据的绑定感到困惑。另一个例子是,Swing组件默认是不透明的,但可以通过setOpaque方法调整...

    一个采用Java Swing和MySQL的桌面应用程序,具有MVC体系结构,并为学生、教师和管理员提供三个用户仪表板.zip

    该Java Swing和MySQL桌面应用程序是基于MVC(Model-View-Controller)设计模式构建的,这是一种广泛用于软件工程的架构模式,特别是在GUI应用中。它将应用分为三个主要部分:模型,视图和控制器,以实现更好的代码...

    swing_hack,swing_hack

    3. **模型-视图-控制器(MVC)**: Swing遵循MVC设计模式,其中模型存储数据,视图负责展示,控制器处理用户交互。例如,JTable组件的模型是DefaultTableModel,视图是TableColumnModel,而控制器则是...

    在Swing中使用高级的MVC和POJOs.doc

    在Swing中构建高效的应用程序时,采用高级的MVC(模型-视图-控制器)设计模式和POJO(Plain Old Java Objects)是常见的最佳实践。TikeSwing框架是解决这一问题的一个开源解决方案,它专门针对Swing设计,旨在简化...

Global site tag (gtag.js) - Google Analytics