JAVA绘图工具开发简单介绍
2012-08-10 11:12
351 查看
JAVA绘图工具开发简单介绍
最近在做IP售前工具,主要功能分为专家绘制向导图和一线使用向导图进行胶片制作。下面就我最近工作中学到的一点点知识给到家做一个JAVA绘图工具开发的简单介绍。
在IP售前工具的预研阶段我调查到两个非常好用的做JAVA绘图工具: JGraph和GEF。下面我就对这两个东西给大家做个介绍。
JGraph介绍
JGraph的基础知识简介,一个简单的开始JGraph是一个开源的,兼容Swing的基于MVC体系结构图形组件,具有以下特点:
1) 基于Swing的扩展;(鉴于现在流行的SWT,这是一个缺点,不过SWT中加入Swing也是很方便的事)
2) 简单、高效的设计;
3) 时间效率高;
4) 100 %纯Java;
5) 强大的布局算法支持(虽然付费,大概500百美元,但其功能异常强大,适合像我这种不懂图论的java程序员)
JGraph不包含实际的数据,它提供了数据的视;JGraph对象画图的机制是:
将图元定义为一个一个的cell,每个cell可以是一个顶点(vertex)、边(edge)或者节点(port)中的一种。顶点可以有邻接的顶点,他们通过边相联系,边联接的两个端点称为目标和源,每个目标或者源是一个节点。节点是顶点的孩子。每个cell都可以有自己的孩子。
每个cell的外观由相应的属性定义,属性序列是指一系列的键-值对,他们以Map形式组织,例如:
Map map = new Hashtable();
// 设置一个矩形的vertex
Rectangle2D rect = new Rectangle2D.Double(20, 20, 40, 20);
//GraphConstants为设置整个graph图像属性的类
GraphConstants.setBounds(map, rect);
// 设置各种vertex属性,这里设置其颜色为例
GraphConstants.setBorderColor(map, Color.black);
GEF介绍
GEF(Graphical Editor Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。这样的应用程序有很多,例如:UML类图编辑器、图形化XML编辑器、界面设计工具以及图形化数据库结构设计工具等等。归结一下,可以发现它们在图形化编辑方面具有以下共同之处:
1) 提供一个编辑区域和一个工具条,用户在工具条里选择需要的工具,以拖动或单击的方式将节点或连接放置在编辑区域;
2) 节点可以包含子节点;
3) 用户能够查看和修改某个节点或连接的大部分属性;
4) 连接端点锚定在节点上;
5) 提供上下文菜单和键盘命令;
6) 提供图形的缩放功能;
7) 提供一个大纲视图,显示编辑区域的缩略图,或是树状模型结构;
8) 支持撤消/重做功能;
基于GEF的界面设计工具(Visual Editor,VE)的工作界面
GEF最早是Eclipse的一个内部项目,后来逐渐转变为Eclipse的一个开源工具项目,Eclipse的不少其他子项目都需要它的支持。Eclipse 3.0版本花了很大功夫在从Platform中剥离各种功能部件上,包括GEF和IDE在内的很多曾经只能在Eclipse内部使用的工具成为可以独立使用的软件/插件包了。理论上我们是可以脱离Eclipse用GEF包构造自己的应用程序的,但由于它们之间天然的联系,而且Eclipse确实是一个很值得支持的开发平台,所以我还是推荐你在Eclipse中使用它。
GEF的优势是提供了标准的MVC(Model-View-Control)结构,开发人员可以利用GEF来完成以上这些功能,而不需要自己重新设计。与其他一些MVC编辑框架相比,GEF的一个主要设计目标是尽量减少模型和视图之间的依赖,好处是可以根据需要选择任意模型和视图的组合,而不必受开发框架的局限(不过实际上还是很少有脱离Draw2D的实现)。
现在来看看GEF是如何实现MVC框架的吧,在这个帖子里我们先概括介绍一下它的各个组成部分,以后将结合例子进行更详细的说明。
JGraph和GEF的对比
1) JGraph是纯JAVA开发的绘图工具,跨平台性好。GEF是基于SWT的图像编辑框架,需要开发人员自己去实现;
2) JGraph有JGraphX和MXgraph分别用于C/S和B/S软件。能非常方便的嵌入;
3) GEF的扩展性较好;
4) GEF相关的问当较多,学习较方便。
最近在做IP售前工具,主要功能分为专家绘制向导图和一线使用向导图进行胶片制作。下面就我最近工作中学到的一点点知识给到家做一个JAVA绘图工具开发的简单介绍。
在IP售前工具的预研阶段我调查到两个非常好用的做JAVA绘图工具: JGraph和GEF。下面我就对这两个东西给大家做个介绍。
JGraph介绍
JGraph的基础知识简介,一个简单的开始JGraph是一个开源的,兼容Swing的基于MVC体系结构图形组件,具有以下特点:
1) 基于Swing的扩展;(鉴于现在流行的SWT,这是一个缺点,不过SWT中加入Swing也是很方便的事)
2) 简单、高效的设计;
3) 时间效率高;
4) 100 %纯Java;
5) 强大的布局算法支持(虽然付费,大概500百美元,但其功能异常强大,适合像我这种不懂图论的java程序员)
JGraph不包含实际的数据,它提供了数据的视;JGraph对象画图的机制是:
将图元定义为一个一个的cell,每个cell可以是一个顶点(vertex)、边(edge)或者节点(port)中的一种。顶点可以有邻接的顶点,他们通过边相联系,边联接的两个端点称为目标和源,每个目标或者源是一个节点。节点是顶点的孩子。每个cell都可以有自己的孩子。
每个cell的外观由相应的属性定义,属性序列是指一系列的键-值对,他们以Map形式组织,例如:
Map map = new Hashtable();
// 设置一个矩形的vertex
Rectangle2D rect = new Rectangle2D.Double(20, 20, 40, 20);
//GraphConstants为设置整个graph图像属性的类
GraphConstants.setBounds(map, rect);
// 设置各种vertex属性,这里设置其颜色为例
GraphConstants.setBorderColor(map, Color.black);
GEF介绍
GEF(Graphical Editor Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。这样的应用程序有很多,例如:UML类图编辑器、图形化XML编辑器、界面设计工具以及图形化数据库结构设计工具等等。归结一下,可以发现它们在图形化编辑方面具有以下共同之处:
1) 提供一个编辑区域和一个工具条,用户在工具条里选择需要的工具,以拖动或单击的方式将节点或连接放置在编辑区域;
2) 节点可以包含子节点;
3) 用户能够查看和修改某个节点或连接的大部分属性;
4) 连接端点锚定在节点上;
5) 提供上下文菜单和键盘命令;
6) 提供图形的缩放功能;
7) 提供一个大纲视图,显示编辑区域的缩略图,或是树状模型结构;
8) 支持撤消/重做功能;
基于GEF的界面设计工具(Visual Editor,VE)的工作界面
GEF最早是Eclipse的一个内部项目,后来逐渐转变为Eclipse的一个开源工具项目,Eclipse的不少其他子项目都需要它的支持。Eclipse 3.0版本花了很大功夫在从Platform中剥离各种功能部件上,包括GEF和IDE在内的很多曾经只能在Eclipse内部使用的工具成为可以独立使用的软件/插件包了。理论上我们是可以脱离Eclipse用GEF包构造自己的应用程序的,但由于它们之间天然的联系,而且Eclipse确实是一个很值得支持的开发平台,所以我还是推荐你在Eclipse中使用它。
GEF的优势是提供了标准的MVC(Model-View-Control)结构,开发人员可以利用GEF来完成以上这些功能,而不需要自己重新设计。与其他一些MVC编辑框架相比,GEF的一个主要设计目标是尽量减少模型和视图之间的依赖,好处是可以根据需要选择任意模型和视图的组合,而不必受开发框架的局限(不过实际上还是很少有脱离Draw2D的实现)。
现在来看看GEF是如何实现MVC框架的吧,在这个帖子里我们先概括介绍一下它的各个组成部分,以后将结合例子进行更详细的说明。
JGraph和GEF的对比
1) JGraph是纯JAVA开发的绘图工具,跨平台性好。GEF是基于SWT的图像编辑框架,需要开发人员自己去实现;
2) JGraph有JGraphX和MXgraph分别用于C/S和B/S软件。能非常方便的嵌入;
3) GEF的扩展性较好;
4) GEF相关的问当较多,学习较方便。
相关文章推荐
- java开发工具简单介绍
- TexturePacker图片打包工具——简单介绍+简单制作图片集教程——cocos2d-x游戏开发引擎图片制作必备
- Java项目开发环境构建工具 Gradle 使用笔记(简单、基本)
- java 的搭建开发环境的简单介绍
- Java静态检测工具的简单介绍 - Sonar、Findbugs
- java 开发工具介绍
- eclipse RCP开发一个简单的MYSQL客户端工具介绍
- Java开发工具介绍
- Java项目开发环境构建工具 Gradle 使用笔记(简单、基本)
- 一起学Java_Eclipse开发工具介绍及equals、toString方法的重写equals
- java以及javaweb开发组件,开发环境和开发工具安装配置(一:java环境--最简单的方式)
- 微软最新的 Web 开发工具WebMatrix的简单介绍及安装
- Java常用开发工具介绍
- Java静态检测工具/Java代码规范和质量检查简单介绍(转)
- Java静态检测工具的简单介绍 - Sonar、Findbugs
- 微软最新的 Web 开发工具WebMatrix的简单介绍及安装
- Java开发工具介绍
- 黑马程序员 java高新技术<一>--eclipse开发工具、java5的一些简单新特性
- 第07章:java开发常用工具介绍
- java 开发工具介绍