弹出处理和空指针异常

时间:2010-12-21 20:25:59

标签: java nullpointerexception processing-ide

所以我正在使用Processing IDE并继续获得这个奇怪的空指针异常。

  

线程“main”中的异常java.lang.NullPointerException
   在processing.core.PApplet.displayable(PApplet.java:9944)
   在processing.core.PApplet.main(PApplet.java:7425)

这就是我得到的所有信息,所以我甚至无法追踪到它发生的地方。这是我的代码

import TUIO.*;

TuioProcessing tuioClient;
Vector tuioCursorList;
Point cols[][];


void setup(){
  size(1440,900);
  tuioClient = new TuioProcessing(this);
  tuioCursorList = tuioClient.getTuioCursors();
  init();
}

void draw(){
  background(0);


}

void init(){
  cols = new Point[width][height];
  for(int i = 0; i<width;i++){
    for(int x = 0; x<height;x++){
      cols[i][x] = new Point(i,x);
    }
  }
}

class Point{

  int x, y;
  boolean alive;
  int life;
  int pointColor;

  Point(int _x, int _y){
    x = _x;
    y = _y;
    pointColor = 0;
    alive = false;
    fill(pointColor);
    point(x, y);

  }

  void checkStatus(){
    if(alive = true){
      isAlive();
    } 
    else{
      isDead();
    }
  }

  void isDead(){
    pointColor = 0;
    life = 0;
  }

  void isAlive(){
    pointColor = 255;
    life = 100;
  }

  void kill(){
    life--; 
  }

}

// called when an object is added to the scene
void addTuioObject(TuioObject tobj) {
  println("add object "+tobj.getSymbolID()+" ("+tobj.getSessionID()+") "+tobj.getX()+"     "+tobj.getY()+" "+tobj.getAngle());
}

// called when an object is removed from the scene
void removeTuioObject(TuioObject tobj) {
  println("remove object "+tobj.getSymbolID()+" ("+tobj.getSessionID()+")");
}

// called when an object is moved
void updateTuioObject (TuioObject tobj) {
  println("update object "+tobj.getSymbolID()+" ("+tobj.getSessionID()+")     "+tobj.getX()+" "+tobj.getY()+" "+tobj.getAngle()
    +" "+tobj.getMotionSpeed()+" "+tobj.getRotationSpeed()+" "+tobj.getMotionAccel()+"     "+tobj.getRotationAccel());
}


// called when a cursor is added to the scene
void addTuioCursor(TuioCursor tcur) {
  println(tcur.getX()+", "+tcur.getY());
}

// called when a cursor is moved
void updateTuioCursor (TuioCursor tcur) {
  println(tcur.getSessionID() + " - " + tcur.getX()+", "+tcur.getY());
}

// called when a cursor is removed from the scene
void removeTuioCursor(TuioCursor tcur) {
}

// called after each message bundle
// representing the end of an image frame
void refresh(TuioTime bundleTime) { 
  redraw();
}

任何人都可以帮我弄清楚这个奇怪的错误。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:3)

将您的init()功能重命名为其他功能。您实际上正在覆盖Processing的内置类的init()函数。