2015-08-20 39 views
1

我试图通过按SHIFT键选择多个对象,然后通过右键单击并选择删除选项,它应该能够删除所有选定的对象。无法删除多选对象

但是,它没有工作。

我的代码如下。

鼠标点击

clickShape = null; 
int x = clickEvent.getX(); // x-coordinate of point where mouse was 
             // clicked 
int y = clickEvent.getY(); // y-coordinate of point 
     // when press down shift key 
if (clickEvent.isShiftDown()) { 
    for (int i = 0; i < shapes.size(); i++) { 
     Shape s = (Shape) shapes.get(i); 
     if (s.containsPoint(x, y)) { 
      s.setColor(Color.RED); 
      multiShape.add(s); 

     } 

    } 

DeleteSelection

else if (command.equals("Delete Selection")) { 
     for (Shape s : multiShape)// look for multishape size 
      shapes.remove(multiShape); 
}// remove selectedmultiple object. 
+1

删除shape s这是有用得多检索对象的ID,然后在目标坐标删除。另外,删除后,您必须调用repaint。 –

+0

Shape区域可能为零并且从不包含任何点。尝试找到最接近你的点击的形状,如果它足够接近添加到列表。 – krzydyn

回答

0

应该

shapes.remove(s); 

shapes.remove(multiShape);

你应该通过shape s去除方法从形状ArrayList

java.util.ArrayList.remove(Object) // this is the method you are using . 
+0

嗨,它工作。我刚刚标记为答案:-)非常感谢。 – MkLim

+0

@LattaLiPong很高兴在这里,.... <3 –

+0

嗯,我只是注意到,有时我的删除din工作得很好。 例如,我可以删除选定的对象,但未能在另一次尝试.. :-( – MkLim