Swing并非严谨地基于MVC的传统形式,它将View和Controller坍塌(collapse)成为一个,但保持Model是分离的。Swing的创始者选择这种简化设计,是为了处理组件里经常出现的View和Controller之间交互的复杂性。插图1.3提供了Swing坍塌式MVC设计的简化表示。合并的View-Controller被称为UI托管(UI delegate)。每个Swing组件都有一个托管对象(delegate object)来负责渲染组件的View,以及处理用户的输入事件。UI管理器是托管的扩展,它从全局管理应用中组件的外观和风格。
将Swing组件和MVC模式付诸实践的一个简单而具体的例子,就是JTextField——允许输入一行文本的文本组件。插图1.4给出了JTextField的简化表示。该组件的UI托管是BasicTextFieldUI,默认的Model是PlainDocument(它最终实现了Document接口)。
插图1.3 Swing中修改了的MVC
插图1.4 JTextField组件
JTextField组件的创建非常直截了当。如果你不指定Model,就会创建一个默认的Model,并且基于当前的外观与风格,在内部指派一个UI托管。
JTextFiled textField = new JTextField();
你可以在创建组件时,通过使用另外的构造函数为它指定自定义的Model。以JTextField为例,这个自定义Model必须实现Document接口。
JTextField textField = new JTextField (new MyCustomDocument());
创建组件后,你可以得到Model和UI托管的完全访问权。要访问JTextField的Model,可以使用下列方法:
Document textDoc = textFiled.getDocument();
TextField.setDocument (new MyCustomDocument());
其它组件通常使用getModel()和setModel(…),但结果是一样的——你能够访问组件身后的Model了。
要访问JTextField的UI托管,可以使用下列方法:
TextUI textUI = textField.getUI();
TextField.setUI (new MyCustomTextUI());
访问其它组件的UI托管与之非常类似。现在,你可以访问组件的各种property。其它组件如JTable和JTree,其创建并非如此简单,但依然遵循UI托管的设计。
分享到:
相关推荐
在Swing中,MVC模式被巧妙地融入到各个组件中,以实现组件的功能和可定制性。 **模型(Model)** 模型是应用程序的核心,负责处理数据和业务逻辑。在Swing中,JTable、JList等组件有自己的模型类,如...
标签"java_swing_mvc mvc_java_swing swing_mvc swing_mvc_de"进一步强调了主题,涵盖了Java Swing与MVC模式的结合,以及可能涉及的解构(decomposition)过程,这是将MVC模式应用到代码中的关键步骤。 在压缩包的...
在Java Swing的MVC中,模型通常负责数据的存储、管理和更新。当模型的数据发生变化时,它会通知观察者(即视图和控制器),以便它们可以相应地更新。 **视图(View)**: 视图是用户看到和与之交互的部分。在Java ...
`Java-Swing-MVC使用.docx`文档可能包含了如何在Swing中实现MVC模式的详细步骤和示例代码。通过阅读这份文档,你可以更深入地理解如何将MVC模式应用于Swing应用程序。 6. **下载资源** 如果你对这个主题有进一步...
在Swing MVC中,模型类通常继承自`javax.swing.model.Model`或其子类,如`JTable`的`TableModel`或`JList`的`ListModel`。模型并不关心数据如何显示,只关注数据的处理和变化。当模型的数据发生变化时,它会通知视图...
总结来说,MVC设计模式在Java Swing中的应用使得GUI组件设计更加灵活,降低了组件之间的耦合度,提高了代码的可维护性。开发者可以专注于模型的业务逻辑,视图的展示效果,以及控制器的交互逻辑,而不必关心它们之间...
本文将详细介绍如何在Java Swing应用中实现MVC架构。 #### 二、MVC架构概述 MVC架构模式的核心在于将应用程序分为三个相互独立的部分:模型(Model)、视图(View)和控制器(Controller)。这种分离有助于保持...
1. **模型(Model)**:在Swing MVC中,模型是应用程序的核心,它存储和处理数据。当数据发生变化时,模型会通知所有关注它的视图进行更新。例如,如果我们的应用是一个电子表格,模型可能包含单元格的数据和公式,...
在Swing应用中,MVC模式同样适用,有助于保持代码的清晰和模块化。 首先,我们来详细解析一下Swing中的MVC架构: 1. **Model(模型)**:模型是应用程序的核心,负责存储和管理数据。在Swing中,`JTable`, `JList`...
在Java Swing中实现MVC设计模式的知识点涉及软件设计原则、编程范式以及Swing框架的具体应用。MVC(Model-View-Controller)设计模式是一种将数据表示和数据处理分离的架构,目的是让开发者能够独立开发和维护数据...
此项目“JAVA Swing (MVC) FTP客户端”是基于Swing和FTP协议创建的一个桌面应用程序,它允许用户进行基本的FTP(File Transfer Protocol)操作,如上传、下载文件,并能展示上传和下载的速度。下面将详细解析这个...
Java Swing MVC设计模式与分层思想在自助订餐系统中的应用 Java Swing 是Java平台上的一个图形用户界面(GUI)工具包,它为开发者提供了一系列组件来构建桌面应用程序。在这个自助订餐系统中,开发人员利用Swing...
【JavaSwing与MVC设计模式】\n\n在JavaSwing中,MVC(Model-View-Controller)设计模式是一种常用于构建用户界面的方法,它将组件的逻辑、显示和用户交互分离,增强了代码的可维护性和灵活性。在Swing的实现中,MVC...
Swing MVC 模式在Java GUI编程中是一个重要的设计模式,它将用户界面(View)、模型(Model)和控制器(Controller)分离,使得代码结构更加清晰,易于维护和扩展。在电子相册应用中,这一模式的应用尤为重要,因为...
简单实现了Swing下的MVC设计;Controller中含View,Model属性以及View中各组件的响应事件;View只负责界面展示;Model负责数据接收;Controller负责1.View事件的响应,并将数据传递给业务层;2.接收业务层的数据给...
这是一个java swing 开发的 FTP 客户端程序,演示如何使用MVC模式,用到 edtFTPj-2.3.0.jar. 主要功能: 1)点击连接按钮,输入ftp服务器登录信息,连接到服务器; 2)双击左侧本地文件夹列表的任意文件,可以上传到...
基于JavaSwing+MVC分层+企业固定资产管理系统源代码+SQL脚本+论文+开题报告+任务书+考核报告+任务书+答辩PPT 服务宗旨:有任何问题私信我 适合人群:工作中项目需要、模板框架实战学习、大学毕业设计参考、找工作...
在Swing中构建高效的应用程序时,采用高级的MVC(模型-视图-控制器)设计模式和POJO(Plain Old Java Objects)是常见的最佳实践。TikeSwing框架是解决这一问题的一个开源解决方案,它专门针对Swing设计,旨在简化...
总的来说,通过Java Swing实现Word转PDF的功能涉及了多个技术领域,包括Java GUI编程、文件I/O、文档解析和生成、以及可能的并发处理。这个过程需要对Java和相关库有深入的理解,同时也展示了Java作为强大工具在跨...
Swing还引入了模型-视图-控制器(MVC)设计模式,使得组件的数据与显示分离。例如,JTable和JList组件可以通过DefaultListModel或DefaultTableModel来管理数据,这样可以方便地更新显示内容。同时,Swing支持事件处理...