Как использовать пользовательские метки вершин в визуализации графа JUNG?
Я следую учебнику Jung 2.0, где обнаружил, что setVertexLabelTransformer()
можно использовать для пометить вершины, но, насколько мне известно, эти метки нельзя настроить.
Например, приведенный ниже код создает три вершины с метками вершин 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);
}
}
Как добавить метки типа "q0"?
SparseMultigraph<V, E>
какSparseMultigraph<Integer, String>
, где общий V для вершины как Integer и общий E для ребра как String, следовательно, значение метки каждой вершины находится в Integer, а метка каждого ребра - в String. Итак, если вам нужны имена каждой вершины, такие как q1, v2 и т. д., используйте String для общего V, чтобы вы могли передать имя вершины, подобное этомуg.addVertex("q1");
- person ecle   schedule 19.02.2012getRenderContext().setVertexLabelTransformer
- person ecle   schedule 19.02.2012String
вместоV
вSparseMultigraph<V, E>
решило проблему. Спасибо. - person Dilini   schedule 19.02.2012