无法添加到ArrayList

时间:2014-07-04 04:08:15

标签: java applet

试图将一个物体(导弹的坐标)添加到ArrayList,但它只添加了最后一个。 ArrayList中只有一个对象。

导弹类

   public ArrayList<Missilies> missilies = new ArrayList<Missilies>();

  //  New missile object  ////////

 public Missilies(int x, int y){

    // missilies = new ArrayList<Missilies>();
    this.x=x;
    this.y=y;

     visible=true;

 }

   public  void fire(){


    System.out.println("Fire !!!");

        missilies.add(new Missilies(x,y));
        System.out.println(" New missile added, total="+
                    +missilies.size()+"  missile    "+missilies);
 }

玩家类。 现在它有效。

 @Override
public void keyPressed(KeyEvent e) {
    switch (e.getKeyCode()){
    case KeyEvent.VK_SPACE:{

        if (lastKey == null || lastKey != e.getKeyChar()) {
            lastKey = e.getKeyChar();
            Missilies m = new Missilies(x,y);
            m.fire();
            missilies.add(m);
           System.out.println("Missilies "+missilies);


            System.out.println("keyPressed: " + lastKey);
        }

2 个答案:

答案 0 :(得分:3)

通过将导弹列表放在Missilies级别中,你可以使每枚导弹都有自己的列表 - 而导弹本身就是其中唯一的导弹。您需要将列表的声明移动到另一个类。

答案 1 :(得分:0)

尝试在导弹类之外移动fire方法或列表声明,您将获得列表中填充的所有导弹对象