g.addEdge(v2, v3);
g.addEdge(v3, v4);
g.addEdge(v4, v3);
//graphx
final mxGraph graph = new mxGraph();
Object parent = graph.getDefaultParent();
graph.getModel().beginUpdate();
HashMap<String, Object> jgraphVertices = new HashMap<String, Object>();
try
{
for(Object o : g.vertexSet())
{
Object o1 = graph.insertVertex(parent,((Node)o).m_name, ((Node)o).m_name, 20, 20, 80, 30);
jgraphVertices.put(((Node)o).m_name, o1);
}
for(Object o : g.edgeSet())
{
Node src = ((TEdge)o).m_src;
Node sink = ((TEdge)o).m_sink;
graph.insertEdge(parent, null, "edge", jgraphVertices.get(src.m_name), jgraphVertices.get(sink.m_name));
}
}finally
{
graph.getModel().endUpdate();
}
final mxGraphComponent graphComponent = new mxGraphComponent(graph);
getContentPane().add(graphComponent);
graphComponent.getGraphControl().addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent e)
{
Object cell = graphComponent.getCellAt(e.getX(), e.getY());
if (cell != null)
{
System.out.println("cell="+graph.getLabel(cell));
}
}
});
}