预熔:向边缘添加标签



在我的可视化中,我想为边缘添加标签。我遵循了这里在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);
    }
}

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

按照 preject 的架构,您将为标签创建一组单独的视觉项目,即所谓的 DecoratorItem

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

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

  • 扩展EdgeRenderer .
  • 注意在render方法中绘制标签。
  • 打电话给super.render,让妖怪画边。

你可以检查这个问题:

在 preject (java) 图形中显示边标签

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

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

问候。

最新更新