Java-如何识别不同位置上的鼠标点击
我正在创建一个绘图应用程序,用户单击一个按钮来选择要绘制的形状(例如节点),然后将该形状放置在单击鼠标的位置。 我希望用户能够点击屏幕上的两个不同的“形状”来创建它们之间的链接。 我创建的每个节点都会添加到节点的Java-如何识别不同位置上的鼠标点击,java,user-interface,mouseevent,Java,User Interface,Mouseevent,我正在创建一个绘图应用程序,用户单击一个按钮来选择要绘制的形状(例如节点),然后将该形状放置在单击鼠标的位置。 我希望用户能够点击屏幕上的两个不同的“形状”来创建它们之间的链接。 我创建的每个节点都会添加到节点的数组列表中。我有一个for循环来迭代节点,并且我在类节点中创建了一个包含以下内容的函数: boolean contains(Point point) { if((point.x >= centerX-radius) && (point.x <= cen
数组列表中。
我有一个for循环
来迭代节点,并且我在类节点中创建了一个包含以下内容的函数:
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;
}
boolean包含(点){
如果((point.x>=centerX radius)&&(point.x我认为您需要保留一个附加变量,以了解单击是第一次还是第二次..在这种情况下,通过第一次单击保持节点处于选中状态可能会很有用
因此,在伪代码中:
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;
}
}
要获取鼠标坐标,可以在onmouseClicked(MouseEvent me)函数中使用getX()和getY()函数。您不能使用jquery或javascript吗?因为在这两个函数中,您都可以使用onblur event创建形状派生对象,如矩形2D、多边形或路径2D,然后您可以使用它们的。包含(点p)
methods。要获得更好的帮助,请发布完整的。如果您只有两个形状,可以参考此链接,这可能会帮助您获得更多形状,然后您需要为每个键编写逻辑,即使这很笨拙