JAVA空指针异常Exception in thread "AWT-EventQueue-0"的解决方法
·
首先先来看看这个异常是什么样子的
这个异常Exception in thread "AWT-EventQueue-0"简单解释就是空指针异常。
在JAVA中,如果一个对象没有被实例化,就等于null。此时对其进行的操作都是违法的。也就是会发生上述异常。
此时先看看这个异常发生的位置,代码如下:
for(int i=0;i<shapes.length ; i++) {
shapes[i].draw(g);//错误发生位置
}
乍一看似乎没有什么问题,但是!看一看我之前对shapes数组的定义:
Shape[] shapes = new Shape[100];
这里我规定了shapes数组对象的长度为100,这时利用length函数获得的长度也为100。而这个数组中有相当一部分是null,这时如果调用draw画出这个对象存储的东西,就会发生空指针异常。
此时只需要在for循环的终止条件中加上一个判断是否为null的就好。
然而我运行之后又发生了空指针异常的错误。
这一段出现问题的代码是这样的
duobian.setData(x1, y1, x2, y2, shapeStr);
shapes[shapecount++] = duobian;
我依旧不知道问题在哪。。。。
但是如果我改成这样就对了
Shape s= new Shape();
s.setData(lastx, lasty, x2, y2, shapeStr);
shapes[shapecount++] = s;
在请教了老师之后,我发现我的错误在于,没有定义对象;
Shape duobian ;
在这种定义方式下,其实只是起了一个名字,并没有定义一个实际的对象。
改成下面这样就可以了
Shape duobian = new Shape();
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)