如何正确使用JUNG布局转换?

时间:2011-11-09 16:47:40

标签: java jung

我在使用JUNG的DAGLayout算法时遇到了一些问题,然后再次将布局坐标读出到我自己的数据结构中。

我有Network课程,其中包含NodeEdge的列表。要将其转换为JUNG数据结构,我创建一个DirectedSparseMultigraph对象并添加边。 e.getSrc()e.getDest()返回Node对象。

DirectedSparseMultigraph<Node, Edge> graph;
for (Edge e : net.getEdges()) {
    graph.addEdge(e, e.getSrc(), e.getDest());
}

然后,我应用布局算法。

Layout<Node, Point2D> layout;
layout = new DAGLayout(graph);

之后,我用布局来获取顶点坐标。

for (Node node : net.getNodes()) {
    Point2D coord = layout.transform(node);
    node.setPos((float)coord.getX(), (float)coord.getY());
}

但是Node对象总是有(0,0)为(x,y)。

为什么这不起作用,我该如何解决?

1 个答案:

答案 0 :(得分:2)

我对JUNG不太熟悉,但我认为你必须先指定布局的大小,例如:

layout.setSize(new Dimension(800,600));