1

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

}

现在的问题是,文本没有显示,但边缘以奇怪的形式绘制。那就是它们没有正确绘制。如果我不覆盖渲染,则绘制文本,但没有边缘。我怎样才能使这项工作?

4

3 回答 3

1

遵循prefuse的体系结构,您将为标签创建一组单独的视觉项目,即所谓的DecoratorItem.

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

于 2012-05-03T13:57:47.767 回答
0

另一个更临时的解决方案:

  • 扩展EdgeRenderer.
  • 注意在render方法中绘制标签。
  • 调用super.render让 prefuse 绘制边缘。
于 2012-05-03T14:04:51.180 回答
0

你可以检查这个问题:

在 prefuse (java) 图中显示边标签

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

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

问候。

于 2012-05-09T04:50:08.410 回答