[英]How can I get the edge label and value in JUNG?
我有 JUNG 和邊緣(頂點)標簽的問題。
我的應用程序基於 JUNG。 它需要從給定的圖中計算一些值。 圖形需要“手動”淹沒,並且在該圖形上我需要設置“起始值”。 我正在考慮為該值使用標簽(頂點名稱,邊長度)。
現在,我可以畫圖了; 我可以獲得頂點和邊的數量,但我不知道如何獲得標簽和值。
我嘗試對邊和頂點使用自定義類,但我根本不知道如何設置標簽。
這是我的代碼的一部分。 它取自文檔。 有人可以告訴我要更改什么,以便我可以在繪制圖形時設置標簽,然后再檢索值嗎?
graph = new SparseMultigraph<Number, Number>();
this.layout = new StaticLayout<Number, Number>(graph,
new Dimension(600, 600));
vv = new VisualizationViewer<Number, Number>(layout);
vv.setBackground(Color.white);
vv.getRenderContext().setVertexLabelTransformer(
MapTransformer.<Number, String>getInstance(LazyMap.<Number, String>decorate(
new HashMap<Number, String>(),
new ToStringLabeller<Number>())));
vv.getRenderContext().setEdgeLabelTransformer(
MapTransformer.<Number, String>getInstance(LazyMap.<Number, String>decorate(
new HashMap<Number, String>(),
new ToStringLabeller<Number>())));
vv.setVertexToolTipTransformer(vv.getRenderContext().getVertexLabelTransformer());
Container content = getContentPane();
final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv);
content.add(panel);
Factory<Number> vertexFactory = new VertexFactory();
Factory<Number> edgeFactory = new EdgeFactory();
final EditingModalGraphMouse<Number, Number> graphMouse = new EditingModalGraphMouse<Number, Number>(
vv.getRenderContext(), vertexFactory, edgeFactory);
vv.setGraphMouse(graphMouse);
vv.addKeyListener(graphMouse.getModeKeyListener());
您可以使用此方法在 jung 中為邊緣設置標簽。
edgeName : your edge name
vv.getRenderContext().setEdgeLabelRenderer(new Transformer<String, String>() {
@Override
public String transform(String edgeName) {
String label;
//map your label to your edgeName
return label;
}
});
等等的頂點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.