我正在创建一个绘图应用程序,用户单击按钮以选择要绘制的形状 - 例如节点 - 然后将形状放置在单击鼠标的位置。
我希望用户能够点击两个不同的形状"在屏幕上创建它们之间的链接。
我创建的每个节点都添加到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)
不起作用,我认为我能够获得第一个被点击的节点,但我仍然在努力识别两次点击另一个节点
任何帮助将不胜感激。
答案 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()函数。