Java中的repaint和paint

Java中的repaint()和paint()有什么区别啊,是怎么用的?... Java中的repaint()和paint()有什么区别啊,是怎么用的? 展开
 我来答
匿名用户
2013-07-30
展开全部
有两点不同:1、repaint有选择的调用update或者paintrepaint() = update或者paint,对于轻量级组件,repaint会调用paint;而对于重量级组件,会调用update。update一般的工作是清屏然后paint。至于为什么repaint度轻量级和重量级的处理有所不同,如果你一定希望知道再追问我。你也可以自己重写update完成自己定制的工作。2、响应方式不一样paint立即响应,而repaint则是发出重绘请求,等待awt线程选择合适的时间进行重绘。这就像,你是一个画家,而你还雇了另外一个画家——awt。有两个方法,完成绘图,第一交给awt线程,但是他什么时候完成绘画完全取决于awt的心情;第二你自己来画,这样更确定,但是你不得不管理许多细节。在非paint方法中,显示的调用任何paint方法,就相当于你自己来画;而repaint就是发出请求交给awt来画。显然我们应该确定究竟谁来画,因为两者交织的画可能带来冲突。比如awt正在绘制的过程中,你的程序乱入,在他绘制一半的图片上涂涂抹抹……。当然java的设计者希望我们把绘制全权交给awt线程来画,而不是自己来画!因为这样最安全和省事。但是我仍然认为在Java游戏编程中还是自己来管理绘制更加灵活。
匿名用户
2013-07-30
展开全部
paint是系统回调函数,继承JFrame之后,组建第一次加载会自动调用paint,以后在想掉paint方法的时候要写repaint,repaint会调用paint方法。

至于继承Applet,浏览器在下载字节码的同时,会自动创建一个用户Applet子类的实例,并在适当事件发生时自动调用该实例的几个主要方法:
1.init()
2.start()
3.paint()
4.stop()
5.destory()
所以会出现楼主所描述的那样的现象。。。

把你代码贴上来看看,肯定是你代码的问题,要不不会无法调paint方法的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式