循环遍历每个数组以创建形状

时间:2011-10-02 01:24:38

标签: java

我正在尝试使paintCOmponent方法循环遍历数组的每个元素并调用显示方法,到目前为止我做了这个

public void paintComponent (Graphics g)
    {
      super.paintComponent(g); 
      for(int i = 0; i < drawObjects.length; i++){
        drawObjects[i].display(g);
      }
  }

我也尝试了每个循环

public void paintComponent (Graphics g)
        {
          super.paintComponent(g); 
          for(Shape s : drawObjects)
           s.display(g);
         }

我和

都出现了这个错误
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at ShapePanel.paintComponent(ShapePanel.java:70)

有人可以向我解释我做错了什么吗?

1 个答案:

答案 0 :(得分:1)

您创建了一个数组而没有完全填充它。当你创建一个数组时,它充满了null,当你尝试在null上使用.运算符时,你会得到NullPointerException。您需要确保在尝试迭代数组之前完全填充数组,或者在循环内添加空检查,这样如果它不为空,您只能尝试display()

如果您确实需要显示可变数量的内容,则应考虑使用某种List,例如ArrayList,而不是数组,因为列表的大小可能会有所不同并赢得' t包含null,除非你把它放在那里。