1

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);
    }

}

問題は、テキストが表示されず、エッジが奇妙な形で描画されることです。つまり、正しく描画されていません。render を上書きしない場合、テキストは描画されますが、エッジは描画されません。どうすればこれを機能させることができますか?

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

この質問を確認できます:

prefuse (java) グラフでのエッジ ラベルの表示

Google がここと以前の質問を送ってくれました。いくつかのコードを探していたところ、最近次のバージョンを見つけて正常に動作しました。

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

よろしく。

于 2012-05-09T04:50:08.410 に答える
0

別のアドホックな解決策:

  • 延長しEdgeRendererます。
  • renderメソッド内でのラベルの描画には注意してください。
  • super.renderprefuse にエッジを描画させるために呼び出します。
于 2012-05-03T14:04:51.180 に答える