Как использовать пользовательские метки вершин в JUNG визуализации графика?Как добавить пользовательские метки вершин в визуализации графа JUNG?
Я следую Jung 2.0 Tutorial, где обнаружил, что 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"?
Просьба привести учебник, за которым вы следуете. См. Также [* Начальные потоки *] (http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html). – trashgod
Поскольку вы определили дженерики 'SparseMultigraph' как 'SparseMultigraph ', где общий V для вершины как Integer и общий E для ребра как String, следовательно, значение метки каждой вершины находится в Integer и метке каждого края в String. Итак, если вы хотите, чтобы каждая вершина была названа такими же, как q1, v2 и т. Д., Используйте String для общего V, поэтому вы можете передать имя вершины, подобное этому 'g.addVertex (« q1 »);' –
ecle
Чтобы изменить стандартный вершинный трансформатор метки в контексте рендеринга JUNG, найдите ключевое слово 'getRenderContext(). setVertexLabelTransformer' – ecle