Dibujar bordes dirigidos programáticamente en Prefuse

Yo uso el siguiente código para mostrar un gráfico:

    graph = new Graph(true);
    vis = new Visualization();
    vis.add(GRAPH, graph);

    CustomLabelRenderer re = new CustomLabelRenderer();
    re.setImageField(NODE_TYPE_IMAGE);
    re.setImagePosition(Constants.TOP);
    EdgeRenderer edgeRenderer = new EdgeRenderer(Constants.EDGE_TYPE_LINE, Constants.EDGE_ARROW_FORWARD);
    edgeRenderer.setArrowType(Constants.EDGE_ARROW_FORWARD);
    edgeRenderer.setArrowHeadSize(10, 10);
    DefaultRendererFactory factory = new DefaultRendererFactory(re, edgeRenderer);
    factory.add(new InGroupPredicate(EDGE_DECORATORS), new LabelRenderer(VisualItem.LABEL));
    vis.setRendererFactory(factory);

Como puede ver, cree una instancia del gráfico para usar bordes dirigidos. Luego configuré EdgeRenderer para usar puntas de flecha. Sin embargo, no puedo ver ninguna flecha en mis bordes, solo líneas simples. ¿Qué estoy haciendo mal?

Así es como agrego bordes:

graph.addEdge(node1, node2);

preguntado el 03 de mayo de 12 a las 14:05

1 Respuestas

Necesita configurar el FILLCOLOR para bordes:

filter.add(new ColorAction(edges, VisualItem.FILLCOLOR, 
    ColorLib.rgb(100,100,100));

Reproduzco el problema con el RadialGraphView demo y no necesitaba ningún cambio en el código fuente a excepción de esta línea. (Sin embargo, tuve que cambiar el archivo de datos).

contestado el 07 de mayo de 12 a las 10:05

Gracias, eso resolvió mi problema. Te otorgaré la recompensa tan pronto como sea posible. - RoflcoptrException

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.