- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
16、高级swing组件
第十五讲 高级Swing组件 目标 Swing 的MVC结构 树的概念 树组件JTree的使用 表格组件JTable的使用 MVC模式 3-1 在OOD中,有一个基本原则:不要让一个对象具有太多的功能。例如,对于按钮来说,不要让一个按钮类来完成所有的事情 MVC模式实现了这个设计原则: 模型(Model)--存储并操作数据 视图(View)--显示模型中的数据 控制器(Control)--处理用户输入,并决定是否改变模型或者视图(通过调用相应的方法) MVC模式 3-2 模型-视图-控制器三者之间的关系: MVC模式 3-3 MVC模式要点: 一个模型可以有多个视图和多个控制器 当模型改变时,模型的视图能够自动地得到通知 在一个视图中改变模型的属性,将导致模型其他视图也随之更新 由于模型独立于视图,所以不需要修改模型来适应新类型的视图或控制器 Swing组件的MVC设计 在Swing中,每一个用户界面组件都采用MVC模式进行设计 由于视图和控制器的职责分工有时不很明显, Swing的用户界面组件设计常采用如下模型: Swing按钮的MVC设计 3-1 Model 一个按钮的model由一个接口ButtonModel来完成(类DefaultButtonModel实现该接口) 。一个ButtonModel实例封装了其内部的状态,并且定义了按钮的行为。它的所有方法可以分为四类:1、查询内部状态(数据)2、操作内部状态(数据)3、添加和删除事件监听器4、通知发生事件 Swing按钮的MVC设计 3-2 View Controller 一个按钮的view/controller由一个接口ButtonUI完成(类BasicButtonUI实现该接口) 。如果一个类实现了这个接口,那么它将会负责创建一个用户界面,处理用户的操作。它的所有方法可以被分为三大类:1、绘制Paint2、返回几何类型的信息3、处理AWT事件 Swing按钮的MVC设计 3-3 程序员通常并不会直接和model以及view/controller打交道,他们通常隐藏于那些继承自javax.swing.JComponent的组件里面了 JButton类究竟是什么?事实上,它是一个继承了JComponent的简单的组件包装类,包含一个DefaultButtonModel对象、一些视图数据(例如按钮的标签和图标)以及一个负责按钮视图的BasicButtonUI对象 树的概念 树状结构是由很多节点组成的。每个节点既可以是树叶,也可以是子节点。每个节点(根节点除外)只有一个父节点。一个树状结构只有一个根节点。有时你可能拥有一个树的集合,每个树都有它自己的根节点。这种集合称为树林 程序中使用的树状结构 JTree JTree类(与它的帮助类一道)负责树状结构的布局,并且负责处理用户提出的展开和折叠各个节点的请求 构造函数: JTree() ;//用一个例子模型创建一个tree JTree(Object[]? value) ; JTree(Vector ?value) ; JTree(TreeModel? newModel) ;//用给定的树的数据模型创建一个tree JTree(TreeNode ?root) ;//用给定的根节点创建一个tree 创建树 3-1 要建立一个JTree,你必须在构造函数中提供该树的数据模型: TreeModel model = ……; JTree tree = new JTree(model); 如何能够得到树的数据模型呢?两种方法:方法一,通过建立一个用于实现TreeModel接口的类,来建立你自己的树的数据模型;方法二,使用Swing库提供的默认的树的数据模型类DefaultTreeModel 对于方法二,你要想得到一个默认的树的数据模型类的实例,必须提供一个根节点: TreeNode root = ……; DefaultTreeModel model = new DefaultTreeModel(root); 创建树 3-2 如何能够得到根节点呢?两种方法:方法一,通过建立一个用于实现TreeNode接口的类,来建立你自己的根节点类;方法二,使用Swing库提供的默认的节点类DefaultMutableTreeNode 在DefaultMutableTreeNode(默认的可变树节点)中,存放了一个对象,即用户对象。树绘制器能够为所有节点显示各个用户对象(以字符串形式) 你可以在DefaultMutableTreeNode的构造函数中设定用户对象,也可以在晚些时候用setUserObject方法来设定用户对象。如: DefaultMutableTreeNode node = new DefaultMutableTre
您可能关注的文档
- Unity 应用程序块容器介绍.doc
- CentOS系统下docker的安装配置及使用详解.docx
- C++ STL基本容器string,vector,list,deque,map.doc
- vector、list、deque的区别.doc
- java_Set,List,Map,Vector,ArrayList的区别.doc
- STL中vector、list,map函数.docx
- Java Collection List、Set、 Map、 HashMap、 Hashtable、 Vector.docx
- Docker 快速部署代码之道.docx
- IoC容器总结与简单模拟.docx
- bootstrap中经常遇到的问题.docx
文档评论(0)