当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

JGraph简介及操纵本领[Java编程]

赞助商链接



  本文“JGraph简介及操纵本领[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

本来一向很少有机会接触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);

而“画布”(类JGraph,无妨如此理解吧)也可以有自己的外观属性.比方:

//定义画布的属性

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);

JGraph的扩大

JGraph只是供应纯真的图形绘制功效,不包含实际的数据,所以要想办法把自己的数据“加”进去才行,这恐怕就得考虑扩大JGraph了.

顶点(Vertex)对应的类为org.jgraph.graph.DefaultGraphCell

边(Edge)对应的类为org.jgraph.graph.DefaultEdge

节点(Port)对应的类为org.jgraph.graph.DefaultPort

我们要做的,仅仅是辨别担当呼应的类,并把自己的数据对象放进去罢了.当然,还可以改变呼应的外观属性.不过假如你对画图事件也感爱好的话(呵呵,十有八九应当有效的),还要留神一下org.jgraph.graph.BasicMarqueeHandler和org.jgraph.graph.GraphUndoManager这两个类呢.BasicMarqueeHandler中包含了在画布上点击鼠标、增添连线、归并等等事件的处理,而GraphUndoManager则主管撤消、答复事件

假如细心操作,你大概回发现,点击边(Edge)的端点举行移动的事件并不由GraphUndoManager来处理,这时刻就要再关注一个类了:org.jgraph.graph.EdgeView.EdgeHandle,这是一个内部类,假如需求的话,自己重写一个类担当它吧.这样,大部份需求的事件都尽在自己的掌握中了

总结

其实也没什么好总结的,写本文也是犹豫再三才开键盘的,本来预备在上个月就写呢.一向拖到目前,因为认为只是简单的利用罢了,满是基本功,没有一点“高级”的“新意”,仿佛实在没什么好写的.

本日在BlogJava上看了一篇帖子,感触颇深,此中一句“成天口若悬河新技术,不如将经典的旧技术烂醉于心”,一语解开了困惑我很长时间的一个疑团!从基本功做起,不是高手,唯手熟而……


  以上是“JGraph简介及操纵本领[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • JGraph简介及操纵本领
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .