これはスタックの私の最初の質問ですので、どのようにより良い次回を行う方法をアドバイスします:) 私はカップルの四角形で構成されるリストを作成しました。私は、リスト内の四角形と、この長方形上のドラッグされ解放されたJLabbelとの間の交差をチェックするために、このリストをループすることを試みています。私のアプローチは次のとおりです:ループの長方形のArrayListを介してループを確認する
public void mouseReleased(MouseEvent e) {
Component comp = (Component) e.getSource();
Point locOnScreen = e.getLocationOnScreen();
int x = locOnScreen.x - initialLocOnScreen.x + initialLoc.x;
int y = locOnScreen.y - initialLocOnScreen.y + initialLoc.y;
boundsSet(x, y, comp);//method to limit dragging space in contentPane
List<Rectangle> placeHolder = new ArrayList<Rectangle>();
placeHolder.add(leftDesk);
placeHolder.add(leftPainting);
placeHolder.add(underBed);
placeHolder.add(onBed);
placeHolder.add(centerPainting);
placeHolder.add(window);
placeHolder.add(wardrobe);
for (Rectangle holder : placeHolder) {
if (holder.intersects(comp.getBounds())) {
JOptionPane.showMessageDialog(null, "Correct place !");
GameStatus.points += 10;
GameStatus.nrOfItems--;
if (GameStatus.points == 50)
GameStatus.level++;
} else
comp.setLocation(initialLoc);
}
}
私は、四角形に適切な座標(何百回もチェックされている)を設定しました。問題は、List内の最初の矩形との交差点だけを検出することです。別の配置済みの矩形にラベルをドラッグすると、検出されません。何か案は?
あなただけの1つの長方形それらのすべてではないと、それをチェックように見えます。 –
'' ....だから、次回はもっとうまくやってくれるとアドバイスしてくれます... " - 有効な[mcve]や[SSCCE](http://sscce.org)を作成して投稿することを検討してください。 。 –
本当に 'else'ブランチが必要ですか?なぜここにいるのか分かりません。最初のチェックの後、コンポーネントの位置が変更されているようです。 – Zefick