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;
}
}