Java - 如何识别不同位置的鼠标点击

时间:2017-11-08 12:02:27

标签: java user-interface mouseevent

我正在创建一个绘图应用程序,用户单击按钮以选择要绘制的形状 - 例如节点 - 然后将形状放置在单击鼠标的位置。 我希望用户能够点击两个不同的形状"在屏幕上创建它们之间的链接。 我创建的每个节点都添加到ArrayList of Nodes.我有一个for-loop来遍历节点,我创建了一个包含在我的类NODE中的函数:

boolean contains(Point point) {
    if((point.x >= centerX-radius) && (point.x <= centerX+radius) && 
            (point.y <= centerY+radius) && (point.y>=centerY-radius))
        return true;
    else 
        return false;
}

因为component.contains(point)不起作用,我认为我能够获得第一个被点击的节点,但我仍然在努力识别两次点击另一个节点

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我认为您需要保留一个额外的变量,以确定点击是第一个还是第二个。在这种情况下,通过第一次点击保持选择节点可能很有用..

所以,在伪代码中:

Node selected;

onClick() {
    Node clicked = findNode();

    if (clicked == null || clicked == selected) {
        selected = null;
    } else
    if (selected == null) {
        selected = clicked;
    } else {
        createLine(selected, clicked);
        selected = null; 
    }
}

答案 1 :(得分:-1)

要获取鼠标坐标,在onmouseClicked(MouseEvent me)函数中使用getX()和getY()函数。