[英]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.