开源项目JHotDraw分析报告.docVIP

  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文档。上传文档
查看更多
开源项目JHotDraw分析报告 作者: Email: 电话: 一、JHotDraw项目的简要介绍 JHotDraw是一个基于LGPL协议的二维的GUI框架开源项目,是一个设计良好的(Well-Designed)框架,主要用于支持用Java开发的图形编辑器,已用于各种研究。JHotDraw实际上是HotDraw的Java版,HotDraw也是一个图形框架,最初是由Kent Beck和Ward Cunningham用Smalltalk开发为教学的目的而设计的。 目前它的最新版本是JHotDraw 7.0.9,从JHotDraw5.2 版本起其框架结构已经成熟稳定。本文以5.2版本为讨论对象,在这个版本里,原来的AWT组件被换成了相应的JFC Swing 组件,同时也支持一些新的JFC Swing 特性。所以,JHotDraw作为一个专业应用的GUI框架,它基于的是Swing框架提供的通用的GUI设施,在这些设施之上,JhotDraw 又提供的一些特性和功能包括支持多文档应用、拆分编辑器窗口、支持滚动条、弹出式菜单、支持撤消/重做、工具栏可以根据选择的不同的工具与图形而显示不同的工具、通过StorageFormat 接口可以自己实现所存贮的图形文件格式(比如xm1)、JHotDraw甚至支持简单的动画等。 关于JHotDraw的组织方式及结构,其所有的类及接口是按照它们的功能来组织的。可概括如下:CH. ifa. Draw. framework 包括核心组件的大多数接口定义;CH. Ifa. draw. Standard 包含这些接口的标准实现;CH. Ifa. Draw. figures 包含图形以及它们的相关类;CH. Ifa. Draw. contrib 包含~些附加的功能;CH. Ifa. Draw. samples 包含一些利用JHotDraw的应用的简单例子;CH. Ifa. Draw. application 包含应用(Application)实现的框架;CH. Ifa. Draw. applet 包含Applet实现的框架,等等。JHotDraw主框架如图1所示。 图 1 JHotDraw主框架 经过这么多年的发展,JHotDraw主框架的各主要组件已相对固定,DrawApplication 定义了绘图的界面,并作为各个组件交互的中介者;DrawingView 是一个显示绘图的区域,它也可用来接受客户的输入;Drawing 容纳各种图元(Figure),是图元的容器。Drawing 的改变被传递到DrawingView,并负责更新图形。每个图元都有句柄(Handle),句柄用来定义访问点以及如何与图元交互。在DrawingView 中,可以选择几个图元并对其操作。工具栏里有各种工具(Too1)用来生成图元或对图元进行操作。 实际上,框架从某种意义上讲是一个不完整的系统,通常会对此系统进行剪裁、扩充等用以创建完整的应用。框架实现了应用程序之间的共同点,从而减少了构建这些应用的代价。 在研究运用JHotDraw的开发过程中,一般会考虑下面几个步骤。 为开发的应用程序创建自己的图元(figure)。针对特定的应用程序创建对应的图元,不过在JHotDraw中一些预定义的图元已经存在,像AbstactFigure、compositeFigure、AttributeFigure等,可以通过继承并重载一些方法(比如draw())来重新定义它们的行为和表现形式,从而使具有创建特定图元的功能。 按照应用的需求开发图形工具。JHotDraw本身已提供了一些工具,像创建工具CreationTool、联接工具ConnectionTool、选择工具SelectionTool以及文本工具TextTool,等等。通过继承这些类并重定义其中的某些方法,比如像mouseUP()、mouseDown(),就可以定义程序的交互过程,执行应用程序所需要的任务,比如操作自定义的对象。 生成GUI并整合进应用程序中。JHotDraw已经有了一个基本的应用程序框架;如,DrawApplication、MDI_DrawApplication、DrawApplet。开发者可以重定义createMenus()、createFileMenu()和其他的办法来开发出自己的菜单,通过重定义createTools()来插入新的工具。 任何利用JHotDraw的应用都是用一个窗口用来绘图,这个窗口就是GUI编辑器窗口,它是JFrame的子类,包含一个或多个内部框架(Internal Frames),每个都与一个绘画视图(Drawing View)相关。DrawingView 是Jpanel 的子类,是一个显示绘图的区域。 二、JHotDraw项目的设计模

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档