本来一直很少有机会接触swing或awt的,只是最近公司要做一个工作流定制界面,所以才终于得偿所愿。我知道,如果一切从底层做起的话,恐怕时间、精力都不允许,而现成的一些工作流产品又不能满足公司特定行业工作流的需求,所以只好找一个开源的中间件进行修改了。 就这样,慢慢的认识了jgraph……
关于jgraph,open-open上是这样介绍的:jgraph,纯java开发的图形组件,支持拖,放,缩放,合并等其它操作。它可以被结合到任何的swing应用程序当中。
在jgraph的网站上可以看到,它分为free、pro和layout pro版本,作为广大的“劳苦民众”来说,当然首选free版了。
jgraph的画图机制
参照了jgraph的example和源代码,发现:
jgraph将图元定义为一个一个的cell,每个cell可以是一个顶点(vertex)、边(edge)或者节点(port)中的一种。顶点可以有邻接的顶点,他们通过边相联系,边联接的两个端点称为目标和源,每个目标或者源是一个节点。节点是顶点的孩子。每个cell都可以有自己的孩子。
每个cell的外观由相应的属性定义,属性序列是指一系列的键-值对,他们以map形式组织,例如:
| //定义edge的外观 map map = new hashtable(); graphconstants.setlineend(map, graphconstants.arrow_classic); graphconstants.setendfill(map, true); graphconstants.setlabelalongedge(map, true); getattributes().applymap(map); |
| //定义画布的属性 setbackground(color.decode("#c0c0c0")); seteditable(false); setcloneable(false); setinvokesstopcellediting(true); setjumptodefaultport(true); setportsvisible(false); setgridenabled(false); setgridvisible(false); setgridmode(jgraph.cross_grid_mode); setgridcolor(color.decode("#808080")); setgridsize(10); |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器