¿Cómo usar etiquetas de vértices personalizados en la visualización del gráfico JUNG?¿Cómo agregar etiquetas de vértices personalizados en la visualización de gráficos JUNG?
Estoy siguiendo Jung 2.0 Tutorial donde encontré que setVertexLabelTransformer()
se puede utilizar para etiquetar los vértices, pero estas etiquetas no se pueden personalizar, que yo sepa.
Por ejemplo, el código de abajo produce tres vértices, que tienen vértices 1,2,4-etiquetas:
import edu.uci.ics.jung.algorithms.layout.CircleLayout;
import edu.uci.ics.jung.algorithms.layout.Layout;
import edu.uci.ics.jung.graph.Graph;
import edu.uci.ics.jung.graph.SparseMultigraph;
import edu.uci.ics.jung.visualization.BasicVisualizationServer;
import java.awt.Dimension;
import javax.swing.JFrame;
public class SimpleGraphView {
Graph<Integer, String> g;
public SimpleGraphView() {
g = new SparseMultigraph<Integer, String>();
g.addVertex((Integer)1);
g.addVertex((Integer)2);
g.addVertex((Integer)4);
}
public static void main(String[] args) {
SimpleGraphView sgv = new SimpleGraphView();
Layout<Integer, String> layout = new CircleLayout(sgv.g);
layout.setSize(new Dimension(800,800));
BasicVisualizationServer<Integer,String> vv =
new BasicVisualizationServer<Integer,String>(layout);
vv.setPreferredSize(new Dimension(850,850));
JFrame frame = new JFrame("Simple Graph View");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(vv);
frame.pack();
frame.setVisible(true);
}
}
¿Cómo puedo añadir etiquetas como "q0"?
Por favor, cite el tutorial que estás siguiendo. Ver también [* Initial Threads *] (http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html). – trashgod
Dado que ha definido los genéricos de 'SparseMultigraph' como 'SparseMultigraph ' donde el V genérico para el vértice como entero y el E genérico para el borde como cadena, por lo tanto el valor de la etiqueta de cada vértice está en entero y la etiqueta de cada borde en String. Por lo tanto, si desea que cada vértice tenga nombres como q1, v2, etc., use String para V genérica, de modo que pueda pasar un nombre de vértice como este 'g.addVertex (" q1 ");' –
ecle
Para cambiar el transformador de etiqueta de vértice predeterminado en un contexto de representación JUNG, busque la palabra clave 'getRenderContext(). setVertexLabelTransformer' – ecle