在java jung中添加节点名
Add node name in java jung
我实现了一些图形算法,我想展示它们的绘图。我用的是 Jung 2.0
我想为节点添加名称。我设法在边缘周围书写,但我也想显示节点的名称。
这是我的代码:
Graph<Integer, String> graph3 = new DelegateForest<Integer, String>();
graph3.addVertex(1);
graph3.addVertex(2);
graph3.addVertex(3);
graph3.addEdge("RAD-A", 1, 2);
graph3.addEdge("RAD-B", 1, 3);
Layout<Integer, String> layout3 = new TreeLayout<Integer, String>((Forest<Integer, String>) graph3);
VisualizationViewer<Integer, String> vv3 = new VisualizationViewer<Integer,String>(layout3);
Transformer<String, String> transformer3 = new Transformer<String, String>() {
@Override
public String transform(String arg0){
return arg0;
}
};
vv3.getRenderContext().setEdgeLabelTransformer(transformer3);
transformer3 = new Transformer<String, String>() {
@Override
public String transform(String arg0){
return arg0;
}
};
final DefaultModalGraphMouse<String,Number> graphMouse3 = new DefaultModalGraphMouse<String,Number>();
vv3.setGraphMouse(graphMouse3);
graphMouse3.setMode(ModalGraphMouse.Mode.PICKING);
JFrame frame3 = new JFrame("Pas 3");
frame3.getContentPane().add(vv3);
frame3.pack();
frame3.setSize(350, 300);
frame3.setVisible(true);
你快到了......你需要像处理边缘一样做......
对于边缘你做了类似的事情:
vv3.getRenderContext().setEdgeLabelTransformer(transformer3);
因为节点是一样的...你需要setVertexLabelTransformer
将此段添加到您的代码中..
Transformer<Integer, String> transformer = new Transformer<Integer, String>() {
@Override
public String transform(Integer arg0) {
return arg0.toString();
}
};
vv3.getRenderContext().setVertexLabelTransformer(transformer);
编辑:
您需要调整通用映射以保存整数、字符串...
在 esd 你会得到类似
的东西
我实现了一些图形算法,我想展示它们的绘图。我用的是 Jung 2.0
我想为节点添加名称。我设法在边缘周围书写,但我也想显示节点的名称。
这是我的代码:
Graph<Integer, String> graph3 = new DelegateForest<Integer, String>();
graph3.addVertex(1);
graph3.addVertex(2);
graph3.addVertex(3);
graph3.addEdge("RAD-A", 1, 2);
graph3.addEdge("RAD-B", 1, 3);
Layout<Integer, String> layout3 = new TreeLayout<Integer, String>((Forest<Integer, String>) graph3);
VisualizationViewer<Integer, String> vv3 = new VisualizationViewer<Integer,String>(layout3);
Transformer<String, String> transformer3 = new Transformer<String, String>() {
@Override
public String transform(String arg0){
return arg0;
}
};
vv3.getRenderContext().setEdgeLabelTransformer(transformer3);
transformer3 = new Transformer<String, String>() {
@Override
public String transform(String arg0){
return arg0;
}
};
final DefaultModalGraphMouse<String,Number> graphMouse3 = new DefaultModalGraphMouse<String,Number>();
vv3.setGraphMouse(graphMouse3);
graphMouse3.setMode(ModalGraphMouse.Mode.PICKING);
JFrame frame3 = new JFrame("Pas 3");
frame3.getContentPane().add(vv3);
frame3.pack();
frame3.setSize(350, 300);
frame3.setVisible(true);
你快到了......你需要像处理边缘一样做......
对于边缘你做了类似的事情:
vv3.getRenderContext().setEdgeLabelTransformer(transformer3);
因为节点是一样的...你需要setVertexLabelTransformer
将此段添加到您的代码中..
Transformer<Integer, String> transformer = new Transformer<Integer, String>() {
@Override
public String transform(Integer arg0) {
return arg0.toString();
}
};
vv3.getRenderContext().setVertexLabelTransformer(transformer);
编辑:
您需要调整通用映射以保存整数、字符串...
在 esd 你会得到类似
的东西