Dibujar bordes dirigidos programáticamente en Prefuse
Frecuentes
Visto 764 veces
4
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);
1 Respuestas
6
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
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java prefuse or haz tu propia pregunta.
Gracias, eso resolvió mi problema. Te otorgaré la recompensa tan pronto como sea posible. - RoflcoptrException