我在 Prefuse 中使用 SpecifiedLayout 时遇到问题。我想在已经预定义的位置设置一些节点。我尝试过使用 AxisLayout。节点设置在正确的位置,但是我不能真正使用 DragControl 或 ZoomControl 的选项。所以我尝试使用SpecifiedLayout。这里的问题是所有节点都设置在相同的位置,而不是我在开始时指定的位置。希望有人可以帮助我解决这个问题。
这是代码:
private static Visualization vis;
graph = new Graph();
graph.addColumn("positionx", Integer.class);
graph.addColumn("positiony", Integer.class);
然后我将预定义的位置添加到“positionx”和“positiony”。然后:
ActionList layout = new ActionList(ActionList.INFINITY);
SpecifiedLayout l = new SpecifiedLayout("graph.nodes","positionx","positiony");
layout.add(l);
layout.add(new RepaintAction());
vis.putAction("layout", layout);
正如我所说,如果我使用 AxisLayout 而不是 SpecifiedLayout:
layout.add(new AxisLayout("graph.nodes","positionx",Constants.X_AXIS));
layout.add(new AxisLayout("graph.nodes","positiony",Constants.Y_AXIS));
节点设置在正确的位置,但无法拖动和缩放。
我真的很感激任何帮助。
谢谢