우리는 마우스로 그래프/네트워크를 그릴 수있는 정글이있는 작은 그래프 편집기를 개발했습니다. 우리는 우리가 그리는 패널로 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이 발생 함). 기본 그래프 데이터 구조를 검색 할 때마다
visualizationviewer.getGraphLayout.getGraph();
여기에 뭔가가 있습니까? 또는 프레임 워크 내에 알려진 버그가 수정되지 않았습니까? 프로그래밍 방식으로 기본 객체를 검색하는 동안 광학 부분이 완벽하게 작동하는 것은 이상한 것처럼 보입니다.
를 통해 직접하지
PDEEdges
및Nodes
을 추가 명심 도움 생각하지만 JUNG2는 제공하지 않는다 내 프로젝트에서 사용하지 않는 그래프/레이아웃을 저장 /로드하는 영구 메커니즘 ...'edu.uci.ics.jung.samp의 예제 코드를 확인해보십시오. les.PersistentLayoutDemo.java'를 선택하십시오. – ecle검색은 편집기의 다른 많은 부분에서도 사용됩니다. 예를 들어 절약 기능을 예제로 사용했습니다. 문제는 항상 동일합니다. – user283494