您的位置:首页 > 编程语言 > Java开发

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相关的问当较多,学习较方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: