1. JHotDraw框架概述
开发应用程序时, 大多数情况下会反复处理一些相同的事情: 管理应用程序的生命周期, 事件处理, 线程管理, 本地化资源持久化处理. 为了节省时间与精力, 开发一个可复用的框架以节省开发成本显得非常有必要. 而应用程序框架正是提供多数应用程序都会用到的基础设施(infrastruture), 以节省重复开发的成本, 并提高程序的可维护性. 框架常以可复用类库形式导入到程序中.
框架常常会令人望而却步, 因为框架必须是设计良好的,而良好的设计总是以复杂和庞大为代价. 对于比较小的应用程序来说, 引入大型框架可能使原来的应用程序复杂化, 甚至比没有使用框架还费力. JHotDraw的框架并非是庞大和复杂的(不过随着版本的升级,它已经变得越来越庞大), 它致力于减轻使用框架的成本. 它提供了开发基于swing的应用程序的核心架构,包括程序生命周期控制, 资源管理, 事件处理, 线程管理和本地存储等功能.
2. 框架架构
整个JHotDraw框架的api都位于包: org.jhotdraw.app . app包定义了Application, ApplicationModel, view等接口. 正如你所想, JHotDraw框架正是构建在MVC模式之上, 其中Application封装了控制应用程序生命周期的方法:
1. init() 初始化程序;
2. launch() 启动程序;
3. start() 开始运行;
4. stop() 停止运行;
5. destroy() 退出程序;
构建一个基于JHotDraw应用程序框架的基本步骤为:
1. 定义一个View
2. 创建Application,并启动它.
详见代码:
HelloView.Java
import java.io.IOException;
import java.net.URI;
import org.jhotdraw.app.AbstractView;
import org.jhotdraw.gui.URIChooser;
public class HelloView extends AbstractView{
public void clear() {
}
public void read(URI uri, URIChooser chooser) throws IOException {
}
public void write(URI uri, URIChooser chooser) throws IOException {
}
}
HelloApplication.java
import org.jhotdraw.app.Application;
import org.jhotdraw.app.DefaultApplicationModel;
import org.jhotdraw.app.SDIApplication;
public class HelloApplication {
public static void main(String[] args) {
Application app=new SDIApplication();
DefaultApplicationModel model=new DefaultApplicationModel();
model.setViewClass(HelloView.class);
app.setModel(model);
app.launch(args);
}
}
运行效果:
图1 org.jhotdraw.app包结构图
图2. JHotDraw MVC架构
图3 org.jhotdraw.app.Applicatioin 接口契约
未完待续.....
- 大小: 131.8 KB
- 大小: 57.7 KB
- 大小: 33.3 KB
- 大小: 13.5 KB
分享到:
相关推荐
#JHotDraw HTML 编辑器 第 39 组 - CSE 2102 组项目 该软件允许用户以 WYSIWYG(所见即所得)格式创建 HTML。 用户只需具备一定的 HTML 知识即可保存、导出、加载和修改文件。 用户将找到用于添加图像、视频和链接的...
NULL 博文链接:https://c-zhiwu.iteye.com/blog/846908
2004年下载的JHotDraw开源程序,一个学习设计模式、面向对象设计和开发、java的非常经典的例子。
适用于画流程图的类,继承自swing。被广泛使用。
NULL 博文链接:https://c-zhiwu.iteye.com/blog/908892
java软件,希有助于java学习者
自己收集整理的Jhotdraw相关资料,对于了解和学习jhotdraw的同学会有所帮助。Jhotdraw是著名的设计模式教学用框架,软件设计的经典之作。
java课程设计的一个题目。本程序可以画各种函数曲线,功能有: 1.新建、打开、保存画图 2.多种方式输入函数作图 3.可设置画笔颜色、大小 4.可以放大、缩小 5.可以移动坐标和图像 6.实时显示鼠标经过的坐标 ...
借鉴了JHotDraw源码,开发单层状态图绘制工具, 支持三种遍历方法:CPP(中国邮递员算法),广度优先算法,简化的广度优先算法 里面有三个后缀为draw的图形
为解决标准设计模式演化后难以检测的问题,引入设计模式变体思想,以Bridge模式为例,给出了八种常用的变体实现,并以人工形式挖掘了四种开源系统中Bridge模式变体的基准数,接着在Apache Ant 1.6.2与JHotDraw 5.1...
Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 ...
百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对...
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...
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...