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()方法进行绘制下一个需要显示的内容.这样就起到了一种图片的交替显示从而在视角上形成了动画.

以上都只是个人的通过学习总结出来的东西,并不是什么教程,更不是重要参考资料.如果你有好的意见或者是上面有哪个地方有错误,希望你不要吝啬,尽量的给我指出.

repaint()函数相关推荐

  1. qt repaint 用法_Qt重绘之update,repaint详解

    Qt里面的重绘和Windows编程里面的重绘差不多.但是Qt的重绘更有特色,更加智能. 在讲之前,先说说paintEvent() paintEvent()是一个虚函数槽(slot),子类可以对父类的p ...

  2. qt repaint 用法_qt的update与repaint

    一直搞不明白,qt的update与repaint的区别.虽然文档上说得貌似很明了了.但是,不看看源码,用着用着就迷糊了.今天看了下下相关的源码,记下自己的一点心得的. 1.update到paintEv ...

  3. 【转】QT事件传递与事件过滤器

         [概览] 1.重载特定事件函数.    比如: mousePressEvent(),keyPressEvent(),  paintEvent() .      2.重新实现QObject:: ...

  4. java教学笔记_java学习笔记(一)

    一.java规则:静态变量即类变量(区别与实例变量)用类方法即静态方法访问 例: public classObject_1 {static int i=1;static{//静态区域块,只执行一次,当 ...

  5. QT开发(十二)——QT事件处理机制

    一.QT事件简介 QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发.QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. 常见的QT事件类型如下: 键盘事件: 按键按下和松开 ...

  6. 简单的五子棋操作用两种方法实现

    最近有五子棋的大作业,周折半天才弄明白其中的原理,查阅了许多资料,然后网上的代码只有几篇原创并且注释很少,感觉不好理解.所以感觉有必要分享一下自己的心得 本人使用两种方法: 1:(传统方法)鼠标点击事 ...

  7. 【Qt】2D绘图之绘图中其它问题

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 重绘事件 04. 剪切 05. 播放gif动画 06. 渲染SVG文件 07. 附录 01. 概述 02. 开发环境 Wi ...

  8. java jpanel 缓冲画图_Java:Jpanel 缓冲区 图像

    这是一个非常常用的东西 主要是重写JPanel中的paint(Graphics g)方法实现的. 0 写一个类继承JPanel public class WSModePlane extends JPa ...

  9. QT的事件分发、事件过滤器详解

    一.事件的流向 QT的各种控件(QObject的子类)都有事件处理成员函数,例如: bool QObject::event(QEvent *e);//所有事件 dragEnterEvent(QDrag ...

最新文章

  1. SAP RETAIL WB02 为门店激活物料分类账报错 - ML currencies are not integrated in FI for valuation area m123 NMI1 –
  2. Native层HIDL服务的注册原理-Android10.0 HwBinder通信原理(六)
  3. IntelliJ IDEA 的 Build Project/Build Module/构建项目/构建模块
  4. Mina学习之搭建项目工程目录
  5. 建造者模式(Java与Kotlin版)
  6. Vue Canvas 实现电子签名 手写板
  7. Wei Yang Bryan Lim, etc. Federated Learning in Mobile Edge Networks: A Comprehensive Survey.
  8. 堪萨斯州立大学计算机专业,全美顶尖大学:堪萨斯州立大学
  9. 实现百度搜索实时热点爬虫
  10. Singularity 代码阅读笔记[结构: Struct_Microsoft_Singularity_BootInfo]
  11. tsp问题——遗传算法解决
  12. 程序员如何通过兼职赚钱?有哪些渠道?
  13. 览器野史 UserAgent列传
  14. pip或pip3安装报错Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming。。。
  15. VuePress + GitHub Pages 生成静态网站
  16. 【洛谷】【模拟+栈】P4711 「化学」相对分子质量
  17. 作为前端,如何帮帝都的朋友租到合适的房子
  18. 【文末下载地址】Adobe Photoshop 2022原版免注册免登录来啦
  19. 计算机课程设计-ssm在线点餐系统(沙箱支付)-javaweb外卖系统
  20. shell实现SSH自动登陆

热门文章

  1. 当你没事干的时候。。。
  2. 【绘图必备】国际色卡
  3. 光电技术与光纤基础期末复习笔记
  4. 宝剑锋从磨砺出,梅花香自苦寒来
  5. joycon 连不上_Nintendo Switch Joy-Con断线问题的解决方法
  6. 回味时尚,KZ ZEX Pro静电6单元耳机,百元价格千元级享受
  7. java实现多线程爬取表情包
  8. Vue使用echarts做两个数据对比
  9. Gartner:2018年十大安全项目详解
  10. 【.Net微信_服务号】1.微信JSSDK支付