repaint()方法!

原创 2008年09月29日 19:22:00

repaint()这个方法是一个具有刷新页面效果的方法,如果你要页面进行重画就可以调用.一般都是在AWT的图形绘制当中调用的到.那么该方法具体的工作原来是怎么样的呢?看下面的结构流程图你就可以大概的了解了:


     repaint()方法
              |
              |
             V
      AWT线程--->paint()方法-->图形绘制
   |
   |
   V
      update()方法--->paint()方法--图形绘制

从上面的流程图可以看出,在绘制动画图形时候如果没有调用repaint()方法的时候直接就是由线程调用paint()方法进行绘制,用repaint()进行刷新显示.但是这样的动画会有个缺点(这样的效果绘制出来会有闪烁).想想做出来的动画总是隔一段时间就闪烁,有人会看吗?那么应该怎么去除闪烁呢?我再下面的文章中会讲到.这里主要的是说明repaint()这个方法.

在调用了repaint()的时候我门可以看出,它并不是直接就去绘制动画(调用paint()),而是通过调用AWT线程在由线程去调用另一个方法update()再由update()调用画笔paint()方法进行绘制.那么这里为什么要多做一步呢?这样是不是为我门多增加代码的书写量呢?回答是当然不会,如果你不调用repaint()那么就不能实现每一次的刷新显示,就只会绘制重叠的图形,不能一张一张的绘制出来.那么其中调用的update()到底是起到什么样的作用呢?

  update():清除当前显示并调用paint()方法.当然这个update()方法是可以被修改的,我门在另一篇文章关于"双缓冲技术"中会给大家讲到这点.

综合上面的介绍可以总结出repaint()的工作原理:repaint()通过调用线程再由线程去调用update()方法清除当前显示并再调用paint()方法进行绘制下一个需要显示的内容.这样就起到了一种图片的交替显示从而在视角上形成了动画.

java画图总结之三(常用方法paint,repaint,update)

三,常用方法paint,repaint,update 这个问题的由来是因为,我在编写java小程序,画图的时候,发现我重写了paint(graphics g)方法,而执行的时候调用的是repaint(...
  • tanjun592
  • tanjun592
  • 2017年02月08日 13:56
  • 5275

repaint方法使用和说明

repaint 重绘此组件。如果组件是轻量组件,则此方法会尽快调用此组件的 paint 方法。否则此方法会尽快调用此组件的 update 方法。 目录 1方法 ...
  • liuxinhua2013
  • liuxinhua2013
  • 2014年07月29日 11:04
  • 4175

java中paint,repaint,update之间的关系(闪烁问题的解决)

最近总结了一下java中的paint,repaint和updata三者之间的关系,首先咱们都知道用paint方法来绘图,用repaint重绘,用update来写双缓冲。但是他们之间是怎么来调用的呢,咱...
  • sangjinchao
  • sangjinchao
  • 2016年11月06日 08:31
  • 4194

Graphics 与 repaint 方法

  • 2012年11月28日 22:29
  • 31KB
  • 下载

java基础学习总结——关于Java中的paint,repaint,update三个方法的关系

这些天一直在用repaint()和paint(),到网上一查,还揪出了update(), 其中查到一篇介绍Java中的paint,repaint,update三个方法的关系的文章: 1.  先还...
  • yiziweiyang
  • yiziweiyang
  • 2016年08月26日 09:13
  • 1841

关于Java中的paint,repaint,update三个方法的关系

转载来源网址:http://blog.csdn.net/w5167839/article/details/9109955 这些天一直在用repaint()和paint(),到网上一查,还揪出了u...
  • xuanyuanlei1020
  • xuanyuanlei1020
  • 2015年05月04日 16:50
  • 322

关于Java中的paint,repaint,update三个方法的关系

1.  Java API 中的介绍吧: update public void update(Graphics g)     更新组件。   如果此组件不是轻量级组件,则为了响应对 repaint()...
  • qq_34228570
  • qq_34228570
  • 2017年05月24日 16:08
  • 171

java新手,用repaint方法重新绘图

最近在学习paint方法的使用,想着用一个按钮来改变背景图片(就像我们平时做的那样),然后各方查资料。当然,资料是查不到多少的,因为百度首页的前几页的那几个博客,除了一个原创之外(虽然写的很晦涩难懂)...
  • alinzihao
  • alinzihao
  • 2017年04月06日 12:52
  • 2202

关于Java中的paint,repaint,update三个方法的关系

这些天一直在用repaint()和paint(),到网上一查,还揪出了update(), 其中查到一篇介绍Java中的paint,repaint,update三个方法的关系的文章: 1.  先还是看看...
  • yanghai0321
  • yanghai0321
  • 2011年10月29日 13:00
  • 20819

关于Java中的paint,repaint,update三个方法的关系

repaint,update和paint 这三个方法在Component中定义,由于awt,swing组件都直接或间接继承自Component,所以几乎所有的awt,swing组件都有这三个方法.这...
  • czkct
  • czkct
  • 2015年11月25日 14:16
  • 1140
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:repaint()方法!
举报原因:
原因补充:

(最多只允许输入30个字)