Prefuse:为边缘添加标签?

时间:2012-05-03 10:42:24

标签: prefuse

在我的prefuse可视化中,我想为边添加标签。我按照SO提出的一些例子,但我不能把它付诸实践:

我将这个渲染器用于我的边缘:

private class CustomEdgeRenderer extends LabelRenderer {

    private EdgeRenderer edgeRenderer = new EdgeRenderer();

    @Override
    public String getText(VisualItem item) {
        System.out.println("edgerenderer");
        return "test";
    }

    @Override
    public void render(Graphics2D g, VisualItem item) {
        edgeRenderer.render(g, item);
        item.setTextColor(BLACK);
    }

}

现在的问题是,文本没有显示,但边缘是以奇怪的形式绘制的。那是他们没有正确绘制。如果我不覆盖渲染,则绘制文本,但没有边缘。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

遵循 prefuse 的体系结构,您将为标签创建一组单独的可视项目,称为DecoratorItem

可以在TreeMap演示中找到一个示例: https://github.com/prefuse/Prefuse/blob/master/demos/prefuse/demos/TreeMap.java

答案 1 :(得分:0)

另一个更特别的解决方案:

  • 延长EdgeRenderer
  • 注意在render方法中绘制标签。
  • 致电super.render让prepreuse画边缘。

答案 2 :(得分:0)

您可以查看此问题:

Displaying edges labels in prefuse (java) graphs

谷歌发送给我这里和以前的问题,并寻找一些代码,我最近发现以下版本并运行正常。

http://netgrok.googlecode.com/svn-history/r2/trunk/src/test/AggregateDecoratorDemo.java

问候。