如何在 jGraphx 中响应鼠标事件?
How can you answer a mouse event in jGraphx?
使用 jGraphx,我已经能够构建一个反映程序架构的简单图表。该图将是只读的,即用户可以更改顶点的位置,但不能更改其他内容(顺便说一句,我已将可编辑单元格和可连接边设置为 false,但仍然可以绘制连接(?) ).
问题是我希望能够在用户单击顶点时显示上下文菜单。我怎样才能做到这一点?我的代码大致如下:
mxGraph graph = new mxGraph();
graph.getModel().beginUpdate();
...
Object box = graph.insertVertex( parent, null, obj.getName(), pos, level, 60, 30 );
inheritanceConnections.add( obj );
boxes.put( obj.getPath(), box );
...
// Draw inheritance vertexes
for(ObjectBag obj: inheritanceConnections) {
graph.insertEdge( parent, null, "", boxes.get( obj.getPath() ), boxes.get( obj.getParentObject().getPath() ) );
}
graph.getModel().endUpdate()
基本上,首先绘制所有对象,然后设置它们之间的连接(作为另一个对象的对象父对象)。
我希望能够做类似的事情:
Object box = graph.insertVertex( parent, null, obj.getName(), pos, level, 60, 30 );
box.addMouseListener( new MouseListener....
谢谢。
你可以这样做:
graph.getGraphComponent().getGraphControl().addMouseListener(...)
然后获取鼠标事件的单元格:
@Override
public void mouseReleased(MouseEvent e) {
Object cell = graph.getGraphComponent().getCellAt(e.getX(), e.getY());
...add logic...
}
然后您可以检查单元格是否不为空并且是一个顶点。
使用 jGraphx,我已经能够构建一个反映程序架构的简单图表。该图将是只读的,即用户可以更改顶点的位置,但不能更改其他内容(顺便说一句,我已将可编辑单元格和可连接边设置为 false,但仍然可以绘制连接(?) ).
问题是我希望能够在用户单击顶点时显示上下文菜单。我怎样才能做到这一点?我的代码大致如下:
mxGraph graph = new mxGraph();
graph.getModel().beginUpdate();
...
Object box = graph.insertVertex( parent, null, obj.getName(), pos, level, 60, 30 );
inheritanceConnections.add( obj );
boxes.put( obj.getPath(), box );
...
// Draw inheritance vertexes
for(ObjectBag obj: inheritanceConnections) {
graph.insertEdge( parent, null, "", boxes.get( obj.getPath() ), boxes.get( obj.getParentObject().getPath() ) );
}
graph.getModel().endUpdate()
基本上,首先绘制所有对象,然后设置它们之间的连接(作为另一个对象的对象父对象)。
我希望能够做类似的事情:
Object box = graph.insertVertex( parent, null, obj.getName(), pos, level, 60, 30 );
box.addMouseListener( new MouseListener....
谢谢。
你可以这样做:
graph.getGraphComponent().getGraphControl().addMouseListener(...)
然后获取鼠标事件的单元格:
@Override
public void mouseReleased(MouseEvent e) {
Object cell = graph.getGraphComponent().getCellAt(e.getX(), e.getY());
...add logic...
}
然后您可以检查单元格是否不为空并且是一个顶点。