检测JPanel上的哪个形状/图像被点击,并设置指向它的指针以供其他功能使用



我有一个JPanel,上面画着各种形状(矩形、圆形、图像等),所有这些都继承自"可移动"类(只保存形状中心的坐标)。对象存储在数组列表中,每次单击时,都会迭代每个数组列表,以检查形状是否已单击。

现在,我想做的是有一个"可移动"类型的指针,它指向点击的形状,这样当我在MousePressed函数中设置它时,我仍然可以使用它,例如在MouseDash函数中拖动图像。

我可以通过使用一个临时值来模拟这种行为,对它执行操作,并用修改后的对象替换原始对象,但我想知道是否有更优雅的方法

如果你的指针也是一个Shape,那么没有其他方法可以创建一个新的。Java中的形状已绑定到某个位置,无法移动。

如果它不是一个形状,那么你有各种方法可以正确地完成它,只需将新位置存储在某个地方,然后在那里绘制指针。这将适用于通过图形对象直接绘制的图像或形状:

g.drawImage(pointerImage, pointerX, pointerY, null);

g.fillRectangle(pointerX, pointerY, width, height, null);
//or any other "g.fill..."-method;

最新更新