如何获得JUNG中的边缘标签和值?
来源:爱站网时间:2021-09-16编辑:网友分享
我对JUNG和边(顶点)标签有疑问。我的应用程序基于JUNG。它需要从给定的图形计算一些值。图需要“手动”淹没,在该图上,我需要...
问题描述
我对JUNG和边缘(顶点)标签有疑问。
我的应用程序基于JUNG。它需要从给定的图形计算一些值。该图需要“手动”淹没,在该图上,我需要设置“起始值”。我当时正在考虑为这些值使用标签(顶点名称,边长)。
现在,我可以画一个图;我可以获得顶点和边的数量,但我不知道如何获取标签和值。
我尝试对边缘和顶点使用自定义类,但是我根本不知道如何设置标签。
这是我的代码的一部分。它来自文档。有人可以告诉我要更改什么,以便我可以在绘制图形时设置标签,然后再获取值吗?
graph = new SparseMultigraph();
this.layout = new StaticLayout(graph,
new Dimension(600, 600));
vv = new VisualizationViewer(layout);
vv.setBackground(Color.white);
vv.getRenderContext().setVertexLabelTransformer(
MapTransformer.getInstance(LazyMap.decorate(
new HashMap(),
new ToStringLabeller())));
vv.getRenderContext().setEdgeLabelTransformer(
MapTransformer.getInstance(LazyMap.decorate(
new HashMap(),
new ToStringLabeller())));
vv.setVertexToolTipTransformer(vv.getRenderContext().getVertexLabelTransformer());
Container content = getContentPane();
final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv);
content.add(panel);
Factory vertexFactory = new VertexFactory();
Factory edgeFactory = new EdgeFactory();
final EditingModalGraphMouse graphMouse = new EditingModalGraphMouse(
vv.getRenderContext(), vertexFactory, edgeFactory);
vv.setGraphMouse(graphMouse);
vv.addKeyListener(graphMouse.getModeKeyListener());
解决方法:
您可以使用此方法在jung中为边缘设置标签。
edgeName : your edge name
vv.getRenderContext().setEdgeLabelRenderer(new Transformer() {
@Override
public String transform(String edgeName) {
String label;
//map your label to your edgeName
return label;
}
});
对于顶点等等)>