Мы разработали небольшой редактор графиков с помощью jung, в котором вы можете рисовать графики / сети с помощью мыши.Мы используем VisualizationViewer в качестве панели, на которой рисуем.VisualizationViewer содержит график, который он должен отобразить через содержащий его GraphLayout.У нас также есть функция сохранения, которая сохраняет график в текстовом файле:
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());
...
Новый график отлично отображается, и его можно рисовать еще дальше.
Но функции сохранения (и все другие функциикоторые хотят использовать базовый объект Graph объекта VisualizationViewer), теперь больше не работают должным образом.Либо только один узел распознается, либо нет узлов (что приводит к исключению NullPointerException).Каждый раз, когда мы хотим получить основную структуру данных Graph, которую мы используем:
visualizationviewer.getGraphLayout.getGraph();
Я что-то здесь упускаю?Или есть известная ошибка в рамках, которая не была исправлена?Кажется странным, что оптическая часть работает отлично, в то время как программный поиск базовых объектов не работает.