我們開發了一個帶有jung的小圖形編輯器,您可以使用鼠標繪製圖形/網絡。我們使用VisualizationViewer作爲我們繪製的面板。 VisualizationViewer保存要通過其包含的GraphLayout顯示的圖形。我們也有一個保存功能,節省了圖形轉換爲文本文件:JUNG,在可視化查看器上更改圖形引用
public void saveGraph(){
Graph<V, E> g = visualizationviewer.getGraphLayout.getGraph();
// save g into text file
}
現在我已經寫了使用某種算法生成了我一個新的圖形對象的類:
public Graph<V, E> generateGraph(){
Graph<V, E> g = new DirectedSparseGraph<V, E>();
// do some algorithms on g
return g
}
如果我現在想通過以下方式顯示生成的圖形:
...
visualisationviewer.getGraphLayout.setGraph(generateGraph());
...
新圖形完美顯示,可以進一步繪製。
但是,保存函數(以及想要使用VisualizationViewer底層Graph對象的所有其他函數)現在無法正常工作。只有一個節點被識別或沒有節點(這會導致NullPointerException)。每次我們要檢索我們使用的底層Graph數據結構:
visualizationviewer.getGraphLayout.getGraph();
我在這裏缺少什麼?還是在框架內有一個尚未解決的已知錯誤?看起來很奇怪,光學部件工作正常,而以編程方式檢索底層對象不是。
我不充分發掘JUNG2只能用我最需要的,但JUNG2確實提供了一個持久機制來保存/加載我沒有用在我的項目中的圖形/佈局...嘗試檢查'edu.uci.ics.jung.samp中的示例代碼les.PersistentLayoutDemo.java'是否符合您的要求。 – ecle
檢索也用在我們的編輯器的許多其他部分,我只是使用了保存功能作爲示例。問題總是一樣的。 – user283494