亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JGraph分析

2019-11-18 11:24:37
字體:
來源:轉載
供稿:網友

JGraph分析
                                                                        Johnny.Deng

JGraph是一個開源的,兼容Swing的基于MVC體系結構圖形組件,具有以下特點:

1)   完全Swing兼容;

2)   簡單、高效的設計;

3)   時間效率高;

4)   100 %純java

生成的圖例
生成的圖例

 

二、JGraph設計

1)  MVC

Swing是Java(Sun)提供的UI標準實現之一,Swing基于AWT(Abstract Windowing Toolkit)。JGraph完全兼容Swing,它的實現仍然基于MVC體系結構。

 

 

JGraph MVCJGraph MVC

 

View

JGraph不包含實際的數據,它提供了數據的視;JGraph對象畫圖的機制是:

將圖元定義為一個一個的cell,每個cell可以是一個頂點(vertex)、邊(edge)或者節點(port)中的一種。頂點可以有鄰接的頂點,他們通過邊相聯系,邊聯接的兩個端點稱為目標和源,每個目標或者源是一個節點。節點是頂點的孩子。每個cell都可以有自己的孩子。

每個cell的外觀由相應的屬性定義,屬性序列是指一系列的鍵-值對,他們以Map形式組織,例如:

Map cellAttrib = new Hashtable();

// Set bounds

Rectangle2D helloBounds = new Rectangle2D.Double(20, 20, 40, 20);

GraphConstants.setBounds(cellAttrib, helloBounds);

// Set black border

GraphConstants.setBorderColor(cellAttrib, Color.black);

 

一個cell有類似這樣一個cellAttrib的Map,來定義其外觀。

外觀可以指定諸如一條邊的箭頭樣式等屬性。

 

Model

數據對象可以看成是JGraph中兩個獨立結構的鏈接點:grahp結構和group結構。Graph結構基于圖論中的頂點、邊定義。Group結構是cell的composition結構。Graph結構中getSource()和getTarget()方法,獲得源和目標節點。而在group中通過getChild(),getParent()來獲得cell的組成結構。

 

2)  低層基于圖論邏輯

即:一個圖G包含一個非空的元素集V(G)和一個E(G),其中,E(G)是V(G)中兩個無序元素組成的二元組。V(G)稱為圖G頂點的集合,假如任意集合V(G)中的頂點x/y,(x,y)在E(G)中,邊(x,y)可能以連接頂點x和y的邊(?。┧?,X與y就被稱為鄰接的,否則x與y不鄰接。

 

三、JGraph的應用

以下是一個基于JGraph的Helloworld的分析:

import省略

public class HelloWorld {

 

  public static void main(String[] args) {

 

    // ConstrUCt Model and Graph

    //

    GraphModel model = new DefaultGraphModel();

    JGraph graph = new JGraph(model);

    graph.setSelectNewCells(true);

 

    // Create Nested Map (from Cells to Attributes)

// 此Map中記錄所有屬性,其中的鍵-值對是cell-cellAttribute

// 每個cellAttribute又是一個Map,其鍵-值對是具體一個cell的屬性-值

    Map attributes = new Hashtable();

 

//  以下建立兩個頂點(cell)Hello和World,并分別設置他們的屬性Map

// Create Hello Vertex

    //

    DefaultGraphCell hello = new DefaultGraphCell("Hello");

   

    // Create Hello Vertex Attributes

    //

    Map helloAttrib = new Hashtable();

    attributes.put(hello, helloAttrib);

    // Set bounds

    Rectangle2D helloBounds = new Rectangle2D.Double(20, 20, 40, 20);

    GraphConstants.setBounds(helloAttrib, helloBounds);

    // Set black border

    GraphConstants.setBorderColor(helloAttrib, Color.black);

 

    // Add a Port

    //  每個頂點為了與其他頂點相鄰接,必須添加節點(cell)

    DefaultPort hp = new DefaultPort();

    hello.add(hp);

 

    // Create World Vertex

    //

    DefaultGraphCell world = new DefaultGraphCell("World");

 

    // Create World Vertex Attributes

    //

    Map worldAttrib = new Hashtable();

    attributes.put(world, worldAttrib);

    // Set bounds

    Rectangle2D worldBounds = new Rectangle2D.Double(140, 140, 40, 20);

    GraphConstants.setBounds(worldAttrib , worldBounds);

    // Set fill color

    GraphConstants.setBackground(worldAttrib, Color.orange);

    GraphConstants.setOpaque(worldAttrib, true);

    // Set raised border

    GraphConstants.setBorder(worldAttrib,

           BorderFactory.createRaisedBevelBorder());

 

    // Add a Port

    //

    DefaultPort wp = new DefaultPort();

    world.add(wp);

 

// 建立聯接兩個頂點的邊

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品日韩欧美| 亚洲aa中文字幕| 亚洲一区二区久久久久久| 亚洲偷欧美偷国内偷| 欧美三级欧美成人高清www| 亚洲欧洲美洲在线综合| 欧美丝袜一区二区三区| 91爱爱小视频k| 亚洲香蕉av在线一区二区三区| 久久亚洲成人精品| 一本大道久久加勒比香蕉| 日韩在线观看高清| 日韩av电影在线免费播放| 亚洲人精选亚洲人成在线| 欧美怡春院一区二区三区| 国产综合色香蕉精品| 欧美中文在线免费| 成人黄色av播放免费| 亚洲a区在线视频| 欧美成人激情图片网| 国产精品一区二区三区毛片淫片| 中文字幕欧美精品在线| 亚洲电影免费观看高清| 久久亚洲精品中文字幕冲田杏梨| 精品国产欧美成人夜夜嗨| 欧美一区二区三区精品电影| 成人有码视频在线播放| 日本成人精品在线| 成人免费视频网址| 亚洲第一福利视频| 亚洲一区二区国产| 国产91在线播放九色快色| 自拍偷拍免费精品| 国产免费亚洲高清| 一区二区三区四区精品| 午夜精品久久久久久久99热| 美女扒开尿口让男人操亚洲视频网站| 亚洲欧美福利视频| 国产免费观看久久黄| 国产精品视频网站| 国产日韩欧美在线播放| 国产精品女主播| 成人中文字幕在线观看| 国产欧美 在线欧美| 日韩精品视频三区| 亚洲欧美另类在线观看| 国产午夜精品麻豆| 2019中文字幕在线观看| 日本精品久久电影| 欧美大片在线免费观看| 日本精品性网站在线观看| 欧美性在线视频| 欧美老女人性生活| 精品一区二区电影| 欧美精品在线视频观看| 欧美国产日韩二区| 在线精品视频视频中文字幕| 欧美日韩国产专区| 国产成人精品久久久| 国产一区二区三区三区在线观看| 欧美日韩高清区| 国产精品视频久| 国产综合久久久久久| 欧美精品在线视频观看| 国产精品入口尤物| 欧美日韩一区二区免费视频| 久久精品最新地址| 最近日韩中文字幕中文| 成人国产亚洲精品a区天堂华泰| 热re91久久精品国99热蜜臀| 欧美黄色www| 国产精品国产三级国产aⅴ9色| 欧美午夜视频一区二区| 日韩精品在线视频| 日韩va亚洲va欧洲va国产| 97视频免费在线看| 国产精品三级久久久久久电影| 久久久国产精彩视频美女艺术照福利| 亚洲视频电影图片偷拍一区| 欧美激情免费在线| 精品久久久久久久久中文字幕| 日本亚洲精品在线观看| 欧美精品生活片| 国产91久久婷婷一区二区| 草民午夜欧美限制a级福利片| 高清一区二区三区四区五区| 国产精品一久久香蕉国产线看观看| 日韩av男人的天堂| 亚洲精品国产拍免费91在线| 国产精品一二三视频| 一本一道久久a久久精品逆3p| 91精品国产91久久久久久最新| 成人精品网站在线观看| 国产欧美久久一区二区| 在线播放日韩欧美| 一区二区成人av| 国产精品大陆在线观看| 欧美三级欧美成人高清www| 九九热最新视频//这里只有精品| 91视频-88av| 一区二区三区www| 永久免费精品影视网站| 一本一本久久a久久精品综合小说| 久久综合久久88| 91在线高清免费观看| 欧美成年人在线观看| 在线观看不卡av| 亚洲男子天堂网| 久久亚洲精品小早川怜子66| 在线观看欧美日韩| 国内成人精品一区| 亚洲va男人天堂| 亚洲一区二区久久久| 综合国产在线观看| 国产综合色香蕉精品| 色午夜这里只有精品| 日韩av一卡二卡| 国产亚洲美女久久| 日韩欧美在线网址| 成人激情黄色网| 在线电影欧美日韩一区二区私密| 欧美国产极速在线| 久久91精品国产91久久久| 国产精品久久久久久久久久久久久| 黄色91在线观看| 中文字幕av日韩| 欧美高跟鞋交xxxxhd| 亚洲免费成人av电影| 奇米一区二区三区四区久久| 国产精品久久久久久av下载红粉| 久久久久久噜噜噜久久久精品| 日韩国产欧美区| 国产在线精品一区免费香蕉| 国内外成人免费激情在线视频网站| 日韩欧美在线看| 色yeye香蕉凹凸一区二区av| www国产精品视频| 97精品免费视频| 日韩欧美aⅴ综合网站发布| 欧美黄色片视频| 在线免费观看羞羞视频一区二区| 国产专区欧美专区| 国产欧美一区二区三区四区| 日韩欧美999| 夜夜嗨av一区二区三区四区| 亚洲欧美国产高清va在线播| 亚洲美女免费精品视频在线观看| 精品爽片免费看久久| 91亚洲精品一区二区| 97超级碰碰碰| 欧美日本国产在线| 亚洲护士老师的毛茸茸最新章节| 成人在线免费观看视视频| 综合激情国产一区| 欧美黑人xxxx| 亚洲人成欧美中文字幕| 欧美激情2020午夜免费观看| 欧美激情视频一区二区三区不卡| 亚洲激情免费观看| 国产精品久久在线观看| 国产亚洲欧洲黄色| 色偷偷av亚洲男人的天堂| 亚洲欧美精品suv| 亚洲毛茸茸少妇高潮呻吟|