Prefuse: ¿Agregar etiquetas a los bordes?
Frecuentes
Visto 1,372 veces
1
En mi visualización previa, quiero agregar una etiqueta a los bordes. Seguí algunos ejemplos propuestos aquí en SO, pero no puedo hacerlo funcionar:
Yo uso este Renderer para mis bordes:
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);
}
}
El problema ahora es que el texto no se muestra, pero los bordes se dibujan de una forma extraña. Es decir, no están correctamente dibujados. Si no sobrescribo el renderizado, el texto se dibuja, pero no los bordes. ¿Cómo puedo hacer que esto funcione?
3 Respuestas
1
Siguiendo la arquitectura de prefundir crearía un grupo separado de elementos visuales para las etiquetas, llamado DecoratorItem
.
Puede encontrar un ejemplo en la demostración de TreeMap: https://github.com/prefuse/Prefuse/blob/master/demos/prefuse/demos/TreeMap.java
contestado el 03 de mayo de 12 a las 14:05
0
Otra solución más ad-hoc:
- ampliar
EdgeRenderer
. - Tenga cuidado de dibujar la etiqueta en el
render
método. - Llame al
super.render
para dejar que prefuse dibuje el borde.
contestado el 03 de mayo de 12 a las 15:05
0
Podrías revisar esta pregunta:
Visualización de etiquetas de bordes en gráficos prefundidos (java)
Google me envió aquí y las preguntas anteriores, y buscando algún código, recientemente encontré la siguiente versión y funciona bien.
http://netgrok.googlecode.com/svn-history/r2/trunk/src/test/AggregateDecoratorDemo.java
Saludos.
contestado el 23 de mayo de 17 a las 13:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas prefuse or haz tu propia pregunta.