16、高级swing组件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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、绘制Paint 2、返回几何类型的信息 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

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档