Используя jGraphx, я смог построить простую диаграмму, отражающую архитектуру программы. Этот график будет доступен только для чтения, т. Е. Пользователь может изменить положение вершин, но ничего больше (BTW, я установил редактируемые ячейки и соединяемые ребра на false, но все же можно рисовать соединения (?)).Как вы можете ответить на событие мыши в jGraphx?
Вопрос в том, что я хочу иметь возможность отображать контекстное меню, когда пользователь нажимает на вершины. Как я могу это сделать? Мой код, как более или менее следующим образом:
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....
Спасибо.