JGraphX:如何通过鼠标坐标获取顶点? (mouseMoved方法)

时间:2013-08-07 15:17:13

标签: mouse vertex jgraphx

我有一个mouseMoved(MouseEvent e)方法,坐标为e.getX()和e.getY()。 现在我想检查鼠标是否在顶点上方。有没有办法做到这一点?

我不想检查单元格(顶点)是否被选中,我只想检查鼠标是否在一个顶点上。

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);

1 个答案:

答案 0 :(得分:2)

你可以这样做:

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

单元格应为mxCell,然后您可以使用model.isVertex()model.isEdge()