`
朱凌峰
  • 浏览: 7680 次
文章分类
社区版块
存档分类
最新评论

讨论启发灵感————重绘中的空指针异常问题

阅读更多

今天做了简单画图板,要重绘一个对象类的数组,出现了一个空指针问题:还没对对象类的数组进行实例化,就重绘啦,而重绘中有用到那个数组,因而出现了空指针异常。

在同学的启发下,我觉得在重绘方法中,使用数组前先对数组进行初始化,关键来啦,初始化时,对其参数进行设置,比如type=-1(我们不使用的类型),接下来if(type==-1),就结束重绘。这样就解决了,窗体打开时的那次重绘造成的空指针异常。

下面是我的解决方案:

public void paint(Graphics g) {
super.paint(g);


int x1,y1,x2,y2;
//如果数组为空指针,则对其进行实例化,type值设为-1(一个不用的类型)
if(arrayMs[0]==null){
System.out.println("null");
for(int j=0;j<arrayMs.length;j++){
arrayMs[j]=new MyShape(-1,100,100,400,400);
}
}
//数组一定已经被实例化啦,如果type符合,绘制图形
for(int i=0;i<arrayMs.length;i++){
//如果type有意义,绘制图形
if(arrayMs[i].type==1){
x1=arrayMs[i].x1;
y1=arrayMs[i].y1;
x2=arrayMs[i].x2;
y2=arrayMs[i].y2;
g.fillOval(x1, y1, x2, y2);
}
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics