麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 應(yīng)用 > 編程開(kāi)發(fā) > 正文

jgraph開(kāi)發(fā)技巧

2024-07-16 17:58:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  任何編程開(kāi)發(fā)語(yǔ)言接觸過(guò)了或多或少都會(huì)有一套自己的經(jīng)驗(yàn),今天小編為大家提供jgraph開(kāi)發(fā)技巧,讓新人們少走點(diǎn)彎路。下面一起來(lái)學(xué)習(xí)下jgraph開(kāi)發(fā)技巧吧!
  jgraph的畫(huà)圖機(jī)制
  參照了JGraph的example和源代碼,發(fā)現(xiàn):
  JGraph將圖元定義為一個(gè)一個(gè)的cell,每個(gè)cell可以是一個(gè)頂點(diǎn)(Vertex)、邊(Edge)或者節(jié)點(diǎn)(Port)中的一種。頂點(diǎn)可以有鄰接的頂點(diǎn),他們通過(guò)邊相聯(lián)系,邊聯(lián)接的兩個(gè)端點(diǎn)稱(chēng)為目標(biāo)和源,每個(gè)目標(biāo)或者源是一個(gè)節(jié)點(diǎn)。節(jié)點(diǎn)是頂點(diǎn)的孩子。每個(gè)cell都可以有自己的孩子。
  每個(gè)cell的外觀由相應(yīng)的屬性定義,屬性序列是指一系列的鍵-值對(duì),他們以Map形式組織,例如:
  //定義Edge的外觀
  Map map = new Hashtable();
  GraphConstants.setLineEnd(map, GraphConstants.ARROW_CLASSIC);
  GraphConstants.setEndFill(map, true);
  GraphConstants.setLabelAlongEdge(map, true);
  getAttributes().applyMap(map);
  而“畫(huà)布”(類(lèi)JGraph,不妨如此理解吧)也可以有自己的外觀屬性。例如:
  //定義畫(huà)布的屬性
  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的擴(kuò)展
  JGraph只是提供單純的圖形繪制功能,不包含實(shí)際的數(shù)據(jù),所以要想辦法把自己的數(shù)據(jù)“加”進(jìn)去才行,這恐怕就得考慮擴(kuò)展JGraph了。
  頂點(diǎn)(Vertex)對(duì)應(yīng)的類(lèi)為org.jgraph.graph.DefaultGraphCell
  邊(Edge)對(duì)應(yīng)的類(lèi)為org.jgraph.graph.DefaultEdge
  節(jié)點(diǎn)(Port)對(duì)應(yīng)的類(lèi)為org.jgraph.graph.DefaultPort
  我們要做的,僅僅是分別繼承相應(yīng)的類(lèi),并把自己的數(shù)據(jù)對(duì)象放進(jìn)去而已。當(dāng)然,還可以改變相應(yīng)的外觀屬性。不過(guò)如果你對(duì)繪圖事件也感興趣的話(呵呵,十有八九應(yīng)該有用的),還要留意一下org.jgraph.graph.BasicMarqueeHandler和org.jgraph.graph.GraphUndoManager這兩個(gè)類(lèi)呢。BasicMarqueeHandler中包括了在畫(huà)布上點(diǎn)擊鼠標(biāo)、增加連線、合并等等事件的處理,而GraphUndoManager則主管撤銷(xiāo)、回復(fù)事件
  如果仔細(xì)操作,你也許回發(fā)現(xiàn),點(diǎn)擊邊(Edge)的端點(diǎn)進(jìn)行移動(dòng)的事件并不由GraphUndoManager來(lái)處理,這時(shí)候就要再關(guān)注一個(gè)類(lèi)了:org.jgraph.graph.EdgeView.EdgeHandle,這是一個(gè)內(nèi)部類(lèi),如果需要的話,自己重寫(xiě)一個(gè)類(lèi)繼承它吧。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 色七七网站 | 久久精品一区二区三 | 国产午夜精品一区二区三区免费 | 欧美日韩爱爱视频 | 爱逼爱操综合网 | 亚洲第一成网站 | 看免费黄色大片 | 日日鲁夜夜视频热线播放 | 欧美视频一区二区三区 | 成年人黄色免费网站 | 日韩视频一 | 精品久久久久久久久中文字幕 | 久久男人| 亚洲成人午夜精品 | 中文字幕 在线观看 | av在线免费网 | 99视频观看 | 国产91成人 | 一本色道久久99精品综合蜜臀 | 亚洲成人在线视频网站 | 国产一区免费观看 | 久久综合综合久久 | 欧美成人午夜一区二区三区 | 在线成人免费视频 | 在线视频 亚洲 | 国产69精品久久99不卡免费版 | 亚洲免费视频一区 | 伦一区二区三区中文字幕v亚洲 | 国产一区二区影视 | 91精品国产99久久久久久 | 高清视频一区二区 | 成人不卡免费视频 | 欧美精品一区二区三区在线播放 | 久久新网址| 龙的两根好大拔不出去h | 欧美色爱综合 | 亚洲影院在线播放 | 中文字幕四区 | 国产成人精品二区 | 国产精品久久99精品毛片三a | 久久久久女人精品毛片九一 |