JHotDraw之旅
JHotDraw是面向文档的应用程序框架, 它能通过桌面或者web的方式来发布. 早期的JHotDraw则是以二维图形编辑器的Java图形框架而闻名. JHotDraw起源于Erich Gamma的一个教学实例。更早期的JHotDraw可上溯到1992年由Johnson采用smalltalk开发的hotdraw, 而hotdraw则是参考1989年weinand用C++实现的ET++框架.
JHotDraw是基于LGPL协议的发布的, 即其代码是完全开发的,并可以作为第三方类库用于商业用途(修改或衍生代码则必须遵循LGPL). JHotDraw 采用了大量的设计模式来处理Java矢量图形开发中的各种难题. 由于JHotDraw具有良好的框架,很好的复用性和扩展性, 很快成为一个Java二维矢量图开发的应用框架。而历经了几个版本的发展,JHotDraw已经成为一个成熟的面向文档应用程序框架。本文的目的在于研究JHotDraw的框架,探讨与分析其源码, 以学习软件架构及设计模式的具体运用等知识.
JHotDraw项目主页位于sourceforge,你可以在http://sourceforge.net/projects/jhotdraw/ 上下载最新的版本。当前最新的版本为7.5。JHotDraw有详尽的文档, 而针对较新的版本, 学习JHotDraw唯一可用的资源也是这些文档, 对于研究其架构这些文档已经足够.
JHotDraw最初采用的语言并非Java,而是SmallTalk,项目命名为HotDraw。人们一开始是因为ET++(一个C++应用程序框架)而关注JHotDraw。而Erich Gamma将JHotDraw应用于教学,主要是通过JavaDoc的方式对程序进行说明,并提供相应的教程来说明框架设计的较为重要的地方。这里,我们唯一可用的资源也是JHotDraw的文档(JavaDoc),虽然JHotDraw的文档并非详尽,但对于研究其框架却已经足够。
JHotDraw特性
作为一个教学实例, JHotDraw 闻名于它的 excellent framework(构架良好),well design(设计良好),robust and reliable(可靠与健壮). 整个程序存在大量的设计模式与OO设计原则, 除了用于教学, 它还是一个极好的可视化程序的框架, 图形编辑器工具箱, ect.
目前, 基于JHotDraw的程序有很多, 国外的见JHotDraw Applications , 国内的有千鸟的jphotoshop .
鉴于JHotDraw的特性, 这里将开始一段JHotDraw之旅, 探究其框架与设计, 分析重要类的源码. 其最终目的在于提升面向对象程序设计与软件架构的能力. 如果你已经精通软件架构或设计模式(excellent in design pattern), 或者你讨厌设计模式, 那么这些文章可能不适合你.
相关链接:
-
-
-
-
-
-
-
-
-
http://twiki.org/cgi-bin/view/Wikilearn/JHotDraw 5.1版wiki
- http://personal.cis.strath.ac.uk/~murray/efocswww/papers/EFoCS-38-2001.html Patterns for JHotDraw
-
http://st-www.cs.illinois.edu/users/brant/HotDraw/HotDraw.html 早期版本的hotdraw主页与下载
- 大小: 27.2 KB
分享到:
相关推荐
3. jhotdraw.jar:这是一个Java归档文件,包含了JHotDraw的核心库。开发者可以将这个JAR文件引入到他们的Java项目中,以便使用JHotDraw提供的API来实现图形绘制和设计。 4. sources:这个目录可能包含了JHotDraw的...
1. **图形组件(Graphics Components)**:JHotDraw的核心是它的图形组件库,这些组件可以被组合起来创建复杂的图形。例如,`Figure`类是所有图形对象的基础,它包含了位置、大小、形状和属性等基本信息。`...
1. **设计理念** JHotDraw的设计遵循了MVC(Model-View-Controller)架构模式,这种模式将应用逻辑、用户界面和数据模型分离,使得代码更易于维护和扩展。同时,它采用了插件化设计,使得开发者可以方便地添加新的...
2004年下载的JHotDraw开源程序,一个学习设计模式、面向对象设计和开发、java的非常经典的例子。
**正文** Jhotdraw是一款基于Java的开源图形编辑框架,被广泛用于教学和软件开发,尤其是在讲解设计模式和软件工程..."jhotdraw.chm"文件是宝贵的资源,应充分利用它来深入探索Jhotdraw的世界,提升个人的专业技能。
#JHotDraw HTML 编辑器 第 39 组 - CSE 2102 组项目 该软件允许用户以 WYSIWYG(所见即所得)格式创建 HTML。 用户只需具备一定的 HTML 知识即可保存、导出、加载和修改文件。 用户将找到用于添加图像、视频和链接的...
1. **状态绘制**:用户可以轻松地创建和编辑状态节点,表示系统中的不同状态。每个状态节点可能包含一个或多个事件,这些事件触发状态之间的转换。 2. **转换绘制**:通过连线表示状态之间的转换,用户可以设定触发...
JHotDraw是一款基于Java的开源画图工具,它提供了丰富的图形绘制和编辑功能,非常适合进行设计工作或者教学演示。该工具的源码开放,使得开发者可以深入学习其内部机制,同时也可以根据需求进行定制化开发。 ...
1.新建、打开、保存画图 2.多种方式输入函数作图 3.可设置画笔颜色、大小 4.可以放大、缩小 5.可以移动坐标和图像 6.实时显示鼠标经过的坐标 jar使用:第一步:配置好java的JDK 第二步:运行jar,在命令行中输入java ...
1. **抛物线绘制**:在Java中,我们可以利用Math类的 pow() 和 sqrt() 函数,结合图形对象的drawCurve()方法来绘制抛物线。抛物线的一般方程是y=ax^2+bx+c,通过改变a、b、c的值,可以绘制出不同形态的抛物线。在...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...
除了JRebel,还有一些其他开源的热部署解决方案,如`JHotDraw`或`DCEVM`,它们也可以与IntelliJ IDEA集成,实现类似的功能。这些工具各有优缺点,选择哪一种取决于你的具体需求和预算。 总的来说,热部署插件是现代...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,...使用了优秀的JHotDraw 5.2 框架。 activemq...