Jak używać niestandardowych etykiet wierzchołków w wizualizacji wykresów JUNG?Jak dodać niestandardowe etykiety wierzchołków w wizualizacji wykresów JUNG?
Podążam za Jung 2.0 Tutorial, gdzie stwierdziłem, że do oznaczania wierzchołków można użyć setVertexLabelTransformer()
, ale etykiety te nie mogą być dostosowane do mojej wiedzy.
Na przykład poniższy kod tworzy trzy wierzchołki, posiadające wierzchołków Etykiety 1,2,4:
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);
}
}
Jak mogę dodać etykiety takie jak „Q0”?
Proszę zacytować samouczek, który obserwujesz. Zobacz także [* Initial Threads *] (http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html). – trashgod
Ponieważ zdefiniowałeś generics 'SparseMultigraph' jako 'SparseMultigraph ' gdzie generyczny V dla wierzchołka jako Integer i ogólny E dla krawędzi jako String, stąd wartość każdej etykiety werteksa jest liczbą całkowitą i etykietą każdej krawędzi w String. Tak więc, jeśli chcesz, aby każdy wierzchołek miał nazwy takie jak q1, v2, itp., Użyj ciągu znaków dla ogólnego V, abyś mógł podać nazwę wierzchołka, taką jak ta 'g.addVertex (" q1 ");' –
ecle
Aby zmienić domyślny transformator etykiet wierzchołków w kontekście renderowania JUNG wyszukaj słowo kluczowe "getRenderContext(). setVertexLabelTransformer' – ecle