今天做了简单画图板,要重绘一个对象类的数组,出现了一个空指针问题:还没对对象类的数组进行实例化,就重绘啦,而重绘中有用到那个数组,因而出现了空指针异常。
在同学的启发下,我觉得在重绘方法中,使用数组前先对数组进行初始化,关键来啦,初始化时,对其参数进行设置,比如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);
}
}
}
分享到:
相关推荐
标题中的“铅笔带来的启发——铅笔的智慧ppt模板”暗示了本次讨论的主题,即从铅笔这个常见的文具中挖掘出的人生智慧和哲学。铅笔,作为一种简单却功能强大的工具,它的存在不仅是为了书写和绘画,更寓含着深邃的...
寓言的启发——献给初学编程的人 希望每一个学习编程的同学都有所收获
涉及到了ComboBox控件中Edit控件的重绘、下拉列表控件的重绘以及按钮的重绘。在Edit控件以及下拉列表控件中改变了显示的颜色字体等,还可以显示图片。如果你是一个初学者,如果你想了解ComboBox控件重绘的要领,相信...
反高启发与反主动防御之路——基于源码的免杀技术(中)
区块链对农村电商中农产品上行的启发——基于消费者在线购买农产品意愿的问卷分析
启发式提问驱动学生深度学习的探索与思考——以小学数学课堂为例.pdf
文章通过具体的问题来启发学生,如解方程、判断函数零点的位置和个数,以及处理不等式恒成立的问题等,使学生在解决实际问题的过程中,不断提出和检验自己的策略,提高解决问题的能力。 最后,深度学习还需要学生有...
《连续Hopfield神经网络在旅行商问题中的应用与优化》 旅行商问题(Traveling Salesman Problem,简称TSP)是运筹学领域一个经典的组合优化问题,它旨在寻找访问多个城市并返回起点的最短路径。在这个问题中,一个...
标题“6-15铅笔带来的启发——铅笔的智慧模板.ppt”暗示了这是一个以铅笔为引子,探讨人生哲理和职业智慧的演示文稿。铅笔作为一个日常工具,它的特性与我们的生活、成长和工作有着深远的相似之处。 首先,铅笔告诉...
论文研究- HZG算法——大型0-1启发式目标规划.pdf, 一般0-1规划问题的解可能多至2~n个,若将其一一列出,加以比较,当n较大时,几乎不可能。即使采用隐枚举法,当n>50时,其计算量也是一般计算机无法承受的。作者曾经在...
在探讨机器人教学中如何培养学生的计算思维能力时,文章《机器人教学中计算思维的培养——以汽车总动员项目为例》通过以虚拟机器人项目“汽车总动员”为例,详尽分析了计算思维在机器人教学中的重要性和实际应用方式...
"以问促学 以疑导学——问题导学策略在小学数学教学中的运用" 这一主题聚焦于教育领域中的一种创新教学方法——问题导学法,它强调通过问题来驱动学生的学习过程,激发他们的思考能力和主动性。问题导学法在小学数学...
例如,在“细胞膜——系统的边界”一课中,教师通过精心设计的“主问题”如:“为什么细胞需要边界?”、“细胞膜的成分如何决定其功能?”等,来引导学生分析细胞膜的结构和功能,同时解决教学重点和难点,如细胞膜...
《最优化基础——模型与方法 现代优化计算方法》是一本深入探讨优化理论与实践的书籍,它涵盖了多种现代优化算法,旨在帮助读者理解并应用这些算法解决实际问题。书中详细阐述了遗传算法、模拟退火算法、神经网络...
启发式算法是基于经验或直观知识的搜索策略,用于在复杂的优化问题中寻找近似最优解。这种算法通常适用于多模态函数优化、工程设计、网络路由、机器学习等多个领域。 狼群算法的核心思想来源于狼群在捕猎过程中的...
书中还讨论了深度学习的概念,解释了深度神经网络(deep neural networks)如何通过多层非线性变换捕获高阶抽象特征,从而在各种任务中实现卓越性能。同时,它也涵盖了激活函数的选择,如Sigmoid、ReLU及其变种,...