Как правильно использовать преобразования макета JUNG? - PullRequest
2 голосов
/ 09 ноября 2011

У меня есть некоторые проблемы с использованием алгоритма DAGLayout JUNG и последующим считыванием координат компоновки в мою собственную структуру данных.

У меня есть класс Network со списками Node s иEdge s.Чтобы преобразовать это в структуру данных 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 Ответ

2 голосов
/ 10 ноября 2011

Я не слишком знаком с JUNG, но я думаю, что вы должны сначала указать размер макета, например:

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