Java 小程序的目的是这样的:一个球在屏幕上弹跳。这个球的大小和速度可以通过滚动条来改变。用户可以在屏幕上按下并拖动鼠标来绘制矩形。球也会从这些矩形中反弹。这些矩形的边界存储在一个向量中。单击一个矩形时,它(以及该点处的所有其他矩形)将从矢量(和屏幕)中删除。
我目前遇到的问题是单击删除对象不起作用。我正在做的是获取我单击的位置,并遍历向量的每个元素并查看它是否包含该点,如果包含,则将其从向量中删除。这是方法。
public void mouseClicked(MouseEvent m)
{
if (!ball.flag)
{
Vector<Rectangle> v;
v = (Vector<Rectangle>)ball.r;
Point p;
p = new Point(m.getPoint());
boolean done = false;
int i = 0;
for (Rectangle rect : v)
{
if(rect.contains(p))
{
v.removeElement(i);
System.err.print("Element removed");
continue;
}
i++;
if(i>=v.size())
done=true;
}
ball.r = v;
}
}