0

我编写了以下代码(代码的一些摘录)以将节点显示为矩形,但它不起作用。它只是显示一个简单的节点。

代码摘录:

...
ShapeAction nodeShape = new NodeShapeAction(treeNodes); // treeNodes is a datagroup representing the tree nodes
m_vis.putAction("nodeShape", nodeShape); // m_vis is referring the visualization object
m_vis.run(nodeShape);
....

/**
 * Set node shapes
 */
public static class NodeShapeAction extends ShapeAction {
    public NodeShapeAction(String group) {
        super(group);
        add("type == 'APPLICATION'", Constants.SHAPE_RECTANGLE);
        add("type == 'DATABASE'", Constants.SHAPE_STAR);
        add("type == 'INTERFACE'", Constants.SHAPE_ELLIPSE);
    }

} // end of inner class NodeShapeAction
4

1 回答 1

1

我得到了答案,所以我在这里回答。

prefuse中,将Actions(在我们的例子中ShapeAction)添加到可视化中只是设置了VisualItems 的显示属性。

要显示VisualItem反映这些显示属性的 s,我们需要设置适当renderersVisualization.

ShapeRenderer m_nodeRenderer = new ShapeRenderer();
DefaultRendererFactory rf = new DefaultRendererFactory(m_nodeRenderer);
m_vis.setRendererFactory(rf);
于 2010-02-17T05:44:46.333 回答