1

我正在尝试使用 JUNG 库来可视化带有顶点和边的基本图。使用网站上的示例代码,我有以下内容:

import edu.uci.ics.jung.graph.DirectedSparseGraph;
import edu.uci.ics.jung.graph.Graph;
import edu.uci.ics.jung.graph.UndirectedSparseGraph;
import java.util.*;

public class GraphTest {

    public GraphTest(){        
        Graph g = new DirectedSparseGraph();
        Vertex v1 = (Vertex) g.addVertex(new DirectedSparseVertex());
    Vertex v2 = (Vertex) g.addVertex(new DirectedSparseVertex());
    }

但是,“顶点”带有红色下划线,Netbeans 告诉我它找不到符号。我尝试导入 Netbeans 的建议但无济于事,现在我相信 Vertex 实际上是 Java 原生的。我不知道我要去哪里错了,但我认为这是一个基本的错误,正在逃避我。

4

2 回答 2

1

检查DirectedSparseGraph#addVertexaddVertex的 JavaDoc的返回类型 表明该函数返回一个布尔值而不是Jung 1.XX 确实有一个方法返回一个可以向下转换为 a 的方法。我认为您可能试图从版本 1 中获取与版本 2 一起使用的示例,但它不能向后兼容,这会导致构建错误。VertexArchetypeVertexVertex

于 2013-04-18T10:24:53.093 回答
1

Jung 使用泛型类型,它没有定义 Vertex 类型。

你打算在你的图表中加入什么?

假设您希望顶点为字符串,边缘为整数,您的代码应类似于

Graph<String,Integer> g = new DirectedSparseGraph<String,Intger>();
g.addVertex("foo"); // return type is just a boolean indicating if the vertex was already in graph
g.addVertex("bar");

这将为您提供一个包含两个未连接顶点的图。

于 2013-04-18T10:47:05.847 回答