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();
  • 36
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
引用\[1\]:根据引用内容中的描述,问题中出现的异常是"Exception in thread AWT-EventQueue-0 java.lang.OutOfMemoryError Java heap space"。这个异常通常是由于Java堆内存不足导致的。引用\[3\]中提到,类似的异常也可能是由于加载了过多的软件或者资源导致的。解决这个问题的方式可以尝试增加Java堆内存的大小,可以通过修改Java虚拟机的启动参数来实现。具体的方法是在启动脚本或者命令行中添加"-Xmx"参数,后面跟上所需的堆内存大小,例如"-Xmx2g"表示设置堆内存为2GB。另外,也可以尝试关闭一些不必要的软件或者资源,以释放内存。 #### 引用[.reference_title] - *1* [matlab Exception in thread AWT-EventQueue-0 java.lang.OutOfMemoryError Java heap space](https://blog.csdn.net/qq_41263383/article/details/116449971)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Exception in threadAWT-EventQueue-0“ java.lang.NoClassDefFoundError问题解决](https://blog.csdn.net/qq_40432886/article/details/122235590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Matlab 2015b 报错 Exception in threadAWT-EventQueue-0“ java.lang.OutOfMemoryError: Java heap](https://blog.csdn.net/baigeyunxue/article/details/121084620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值