2013-08-07 3 views
2

У меня есть метод mouseMoved (MouseEvent e) с координатами e.getX() и e.getY(). Теперь я хочу проверить, находится ли мышь над вершиной. Есть ли способ сделать это?JGraphX: Как я могу получить вершину по координатам мыши? (mouseMoved method)

Я не хочу проверять, выбрана ли ячейка (вершина), только я хочу проверить, находится ли мышь над одной вершиной.

mGraph = new mxGraph(); 

// create vertexes ... 

mGraphComponent = new mxGraphComponent(mGraph); 

//mGraphComponent.getGraphControl().addMouseMotionListener(new MouseAdapter() { 
mGraphComponent.getGraphControl().addMouseMotionListener(new mxMouseAdapter() { 
    @Override 
    public void mouseMoved(MouseEvent e) 
    { 
     System.out.println(Integer.toString(e.getX()) + " " + 
      Integer.toString(e.getY())); 

     // here I want to check if the mouse position is over a cell 
     // I only want to check if the mouse is over one (or more?) cells 
    } 
} 
); 

mPanel.add(mGraphComponent); 

ответ

2

Вы можете сделать это следующим образом:

Object cell = mGraphComponent.getCellAt(e.getX(), e.getY(), false); 

клетка должна быть mxCell, а затем вы можете использовать model.isVertex() или model.isEdge().