国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 應用 > 編程開發 > 正文

jgraph開發技巧

2024-07-16 17:58:59
字體:
來源:轉載
供稿:網友

  任何編程開發語言接觸過了或多或少都會有一套自己的經驗,今天小編為大家提供jgraph開發技巧,讓新人們少走點彎路。下面一起來學習下jgraph開發技巧吧!
  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,這是一個內部類,如果需要的話,自己重寫一個類繼承它吧。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 读书| 霍邱县| 滨海县| 九龙坡区| 兴义市| 康定县| 佛冈县| 阜新市| 永顺县| 澜沧| 霍邱县| 临海市| 中宁县| 阿鲁科尔沁旗| 灌南县| 上犹县| 新安县| 柞水县| 边坝县| 洛川县| 丹东市| 门头沟区| 太保市| 蓬安县| 淮南市| 通渭县| 蒙阴县| 大关县| 乡宁县| 德兴市| 永修县| 临武县| 义马市| 扶绥县| 都江堰市| 福贡县| 故城县| 定结县| 康平县| 高陵县| 柘荣县|