异常持久的nullpointerexception(java/处理)

异常持久的nullpointerexception(java/处理),java,nullpointerexception,null,processing,Java,Nullpointerexception,Null,Processing,-问题- 所以我试图在processing中制作一个程序(我用java运行,所以它是基于java的)。 该程序将三维点做成网格,并对其进行处理。现在它在上面画了一个小圆圈来验证它的工作原理。我在调试的过程中发现为什么所有的圆都没有画出来,我不知何故产生了一个我无法消除的错误。无论我做什么,第43行总是有一个nullpointerexception错误。我试着制作一个新的脚本文件,并将代码复制粘贴到其中,重新启动处理IDE,等等,但似乎没有什么办法解决它。我可以在上面或下面添加语句来操纵哪一行是4

-问题- 所以我试图在processing中制作一个程序(我用java运行,所以它是基于java的)。 该程序将三维点做成网格,并对其进行处理。现在它在上面画了一个小圆圈来验证它的工作原理。我在调试的过程中发现为什么所有的圆都没有画出来,我不知何故产生了一个我无法消除的错误。无论我做什么,第43行总是有一个nullpointerexception错误。我试着制作一个新的脚本文件,并将代码复制粘贴到其中,重新启动处理IDE,等等,但似乎没有什么办法解决它。我可以在上面或下面添加语句来操纵哪一行是43,但它不会改变错误。。这里有熟悉处理的人能帮我吗?我不知道如何将错误信息解读为“查看第43行中被称为空的内容”,因此我感到困惑

-代码-

int sizex = 20;
int sizey = 20;
int framewidth = 800;
int frameheight = 800;
int[][] points = new int[(framewidth/sizex+1)*(frameheight/sizey+1)][];

void setup(){
  noLoop();
  background(255);
  size(framewidth,frameheight,P3D);
  ellipseMode(CENTER);

  for(int x = 0; x<=framewidth/sizex; x++){
    for(int y = 0; y<=frameheight/sizey; y++){
      int[] point =  {x*sizex,y*sizey,0};
      //print("\nx:"+x+" y:"+y+" place:"+place);
      points[x*(framewidth/sizex)+y] = point;
      //place++;
    }
  }
}

void draw(){
  int sinstep = 0;
  for(int count = 0; count < points.length; count++){
    int[] temp = points[count];
    temp[2]=(int)(100*Math.sin(sinstep/100));
    points[count] = temp;
  }
  sinstep++;

  for(int x = 0; x<=framewidth/sizex; x++){
    for(int y = 0; y<=frameheight/sizey; y++){
      //print(x+", "+y);
      int[] p = {1,2,3};
      find(x,y);
      ellipse(p[0],p[1],10,10);  
      }
   }
}
void find(int x, int y){
  print("yourmom");
  //This is where the error is //int[] temp = points[(x-1)*(framewidth/sizex)+y
  int[] z = {x,y,x+y};
}

这是数组实例化。现在确定这是如何导致看似无关的部分出现错误消息的,但它现在工作得很酷。

哪一行是第43行?可能是
数组没有正确初始化。代码
int[][]点=新int[(framewidth/sizex+1)*(frameheight/sizey+1)][]未初始化第二个维度。draw()函数乱七八糟。为什么你要使用2D数组而不是点类或类似的东西?@Eizooz,你能在赋值后立即在绘图函数中打印temp.length吗?很确定这就是你的错误所在,但我必须看一下整个代码才能知道。43是由注释标记的//这是错误所在,但它位于另一条注释的行上,因此很容易混淆。尽管如我所解释的,这行代码并没有改变或遵循任何一段代码。我使用2d数组,因为我找不到一个支持维度的点类,我还不知道如何创建自己的点类。这是我的全部密码。
java.lang.RuntimeException: java.lang.NullPointerException
at com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:206)
at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172)
at javax.media.opengl.Threading.invoke(Threading.java:191)
at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:541)
at processing.opengl.PJOGL.requestDraw(PJOGL.java:688)
at processing.opengl.PGraphicsOpenGL.requestDraw(PGraphicsOpenGL.java:1651)
at processing.core.PApplet.run(PApplet.java:2256)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at *triangles.draw(triangles.java:43)*
at processing.core.PApplet.handleDraw(PApplet.java:2386)
at processing.opengl.PJOGL$PGLListener.display(PJOGL.java:862)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:665)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:649)
at javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1289)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1119)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:994)
at javax.media.opengl.awt.GLCanvas$11.run(GLCanvas.java:1300)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)