那为大哥详细讲解一下paint(),repaint(),update(),的关系和用处

zjasan 2003-06-06 10:06:34
能不能详细介绍以下它们的具体调用互相关系

和怎么实现所谓的双缓冲????
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
teaky2002 2003-06-06
  • 打赏
  • 举报
回复
在applet中

init()->start()->paint();

默认的update()方法是先用默认的背景颜色填充小应用程序的窗口,再调用paint()方法。一般情况不用重写update()方法。但是如果你填充背景的颜色跟你paint()中的颜色不一样的时候就会有闪烁感。可以重写update方法,让他完成所有必要的显示功能。然后使paint()简单的调用update().

而repain用于你的窗口信息发生改变的时候,他用来完成窗口的更新。repaint()是awt所定义的。它使得awt的实时运行环境对小应用程序对update的调用。而update会调用paint();


双缓冲:
Canvas c=new Canvas();
Image test=c.createImage(200,100);
Graphics gc=test.getGraphics();
gc.setColor(Color.red);
gc.fillRect(0,0,200,100);
然后用drawimage显示图象就行。
jony413 2003-06-06
  • 打赏
  • 举报
回复
再看一下
http://expert.csdn.net/Expert/topic/1669/1669675.xml?temp=.6051599
jony413 2003-06-06
  • 打赏
  • 举报
回复
在调用到某些控件时它会自己调用paint(),
比如你在jframe里面做了paint(Graphics g)这个函数的话
xhan2000 2003-06-06
  • 打赏
  • 举报
回复
repaint会调用update和paint
jony413 2003-06-06
  • 打赏
  • 举报
回复

调用关系
repaint()
--update()
---paint()
主要用在画图方面.japplet里面常用
作用嘛,顾名思义repaint()就是重画咯....

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧