如何使用Prefuse库将边界传递给节点进行布局

时间:2018-06-28 19:27:45

标签: java prefuse

我正在使用Prefuse-library来布局JavaFX应用程序中的节点(根本没有Swing),并且我对RadialTreeLayout尤其感兴趣。

我的问题是,我的节点不是简单的圆形,而是在左侧或右侧的旁边也有一个标签(取决于节点在父级的哪一侧)。因此,节点的文本有时会重叠。

跳过Prefuse的RadialTreeLayout.java的源代码,看来布局可能很聪明,可以考虑可变大小的节点。我可能不正确,因为我不了解算法,但是Javadoc说:

  

“ ...考虑节点直径以改善空间分配   用于可变大小的节点。”

但是我想我什至不需要可变大小的节点,我只需要给它们一个固定的自定义大小,至少在开始时是这样。

下面是我的实际问题:如何将宽度/高度作为参数传递给布局算法?我很确定这是通过Node.setXXX方法完成的,但是我不知道正确的按键/调用/语法。

我有一个用节点填充的图对象:

Table nodeData = new Table();
nodeData.addColumn("data", NodeData.class);

Table edgeData = new Table(0, 1);
edgeData.addColumn(Graph.DEFAULT_SOURCE_KEY, int.class);
edgeData.addColumn(Graph.DEFAULT_TARGET_KEY, int.class);

Graph graph = new Graph(nodeData, edgeData, false);

Node n1 = graph.addNode();
NodeData data = new NodeData(); // My own "data"-class
data.title = "Root Node";
n1.set("data", data);

我(显然)也具有启动RadialTreeLayout的简单布局代码,完成后,将边界传递给JavaFX节点。

0 个答案:

没有答案