我试图创建一个演示图形和算法的工具。为此,我找到了GraphStream库。我已经阅读了它的所有文档和教程,但我无法使这一件事发挥作用。我正在尝试将图形放入我的自定义GUI (带有按钮和右图形空间的左菜单),我设法做到了。现在,当我启用两个按钮:用随机生成器创建生成图和清除图时,所有操作都很好,但是在清除之后,当我按generate时,我会得到以下错误:
线程" thread -2“org.miv.pherd.IdAlreadyInUseException中的异常:一个具有相同标识符的粒子已经存在(0)
我不明白为什么这是个问题,因为在我没有gui的简单测试程序中,我主要做了一些简单的代码来做同样的事情,它起作用了:
public class Test {
public static void main(String[] args){
Graph graph = new SingleGraph("test");
graph.display();
Generator generator = new BarabasiAlbertGenerator();
generator.addSink(graph);
generator.begin();
for (int i = 0; i < 100; i++) {
generator.nextEvents();
}
generator.end();
graph.clear();
generator = new BarabasiAlbertGenerator();
generator.addSink(graph);
generator.begin();
for (int i = 0; i < 100; i++) {
generator.nextEvents();
}
generator.end();
}这段代码可以工作,但是当我在GUI中使用按钮执行它时,我抛出了前面提到的错误。我还检查了我的程序中有多少个线程在运行,其中有3个线程正在运行。我希望我的问题很清楚,有人能帮我。谢谢大家!
发布于 2014-12-19 10:12:57
这是由BarabasiAlbertGenerator类中已知的bug引起的(参见相应的图形流用户线程)。
此bug已在1.3.x版本的库中修复,这些库目前可在http://graphstream-project.org/pub/1.x/nightly-build/last/夜间构建时使用。
(将来,这个修复应该是常规图形流下载的一部分)
https://stackoverflow.com/questions/27557330
复制相似问题