用java绘制动画的疑问,问题:调用repaint方法后,会自动调用paint方法?抱歉,没有积分了,但是还请帮忙

2025-01-06 07:39:25
推荐回答(3个)
回答1:

线程处理机制问题分析:你用DEBUG跟踪代码运行会发现,main是主线程,它是在你当前配置目录下查找类,而别一个你自定义线程t它会通过start()在java内制包运行他的run()方法,而repaint()方法能跳出线程找到import java.awt.Graphics里的Graphics g画笔,却找不到非public类中的change方法所以无法运行!

解决方法:(以上分析我没做过测试只是理论推出来的结果)
1.把change()方法去调
2.把MyPanel 设为public(估计不行)
建议:最好把repaint()放到try{}语句块里,这样出什么错你能知道

回答2:

repaint()方法是paint()方法的子方法,repaint()的使用规则是调用父类paint()的paint方法,因为如果你在一个程序中没有定义父类的paint()方法则repiant()调用的父类方法是个空的,也就相当于清空。但是如果你在一个程序中同时有paint()和repaint()那么就会清不了屏,解决办法是,你在paint()方法中的开头加上super.paint()

回答3:

额,求给分