repaint()函数
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()函数相关推荐
- qt repaint 用法_Qt重绘之update,repaint详解
Qt里面的重绘和Windows编程里面的重绘差不多.但是Qt的重绘更有特色,更加智能. 在讲之前,先说说paintEvent() paintEvent()是一个虚函数槽(slot),子类可以对父类的p ...
- qt repaint 用法_qt的update与repaint
一直搞不明白,qt的update与repaint的区别.虽然文档上说得貌似很明了了.但是,不看看源码,用着用着就迷糊了.今天看了下下相关的源码,记下自己的一点心得的. 1.update到paintEv ...
- 【转】QT事件传递与事件过滤器
[概览] 1.重载特定事件函数. 比如: mousePressEvent(),keyPressEvent(), paintEvent() . 2.重新实现QObject:: ...
- java教学笔记_java学习笔记(一)
一.java规则:静态变量即类变量(区别与实例变量)用类方法即静态方法访问 例: public classObject_1 {static int i=1;static{//静态区域块,只执行一次,当 ...
- QT开发(十二)——QT事件处理机制
一.QT事件简介 QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发.QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. 常见的QT事件类型如下: 键盘事件: 按键按下和松开 ...
- 简单的五子棋操作用两种方法实现
最近有五子棋的大作业,周折半天才弄明白其中的原理,查阅了许多资料,然后网上的代码只有几篇原创并且注释很少,感觉不好理解.所以感觉有必要分享一下自己的心得 本人使用两种方法: 1:(传统方法)鼠标点击事 ...
- 【Qt】2D绘图之绘图中其它问题
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 重绘事件 04. 剪切 05. 播放gif动画 06. 渲染SVG文件 07. 附录 01. 概述 02. 开发环境 Wi ...
- java jpanel 缓冲画图_Java:Jpanel 缓冲区 图像
这是一个非常常用的东西 主要是重写JPanel中的paint(Graphics g)方法实现的. 0 写一个类继承JPanel public class WSModePlane extends JPa ...
- QT的事件分发、事件过滤器详解
一.事件的流向 QT的各种控件(QObject的子类)都有事件处理成员函数,例如: bool QObject::event(QEvent *e);//所有事件 dragEnterEvent(QDrag ...
最新文章
- SAP RETAIL WB02 为门店激活物料分类账报错 - ML currencies are not integrated in FI for valuation area m123 NMI1 –
- Native层HIDL服务的注册原理-Android10.0 HwBinder通信原理(六)
- IntelliJ IDEA 的 Build Project/Build Module/构建项目/构建模块
- Mina学习之搭建项目工程目录
- 建造者模式(Java与Kotlin版)
- Vue Canvas 实现电子签名 手写板
- Wei Yang Bryan Lim, etc. Federated Learning in Mobile Edge Networks: A Comprehensive Survey.
- 堪萨斯州立大学计算机专业,全美顶尖大学:堪萨斯州立大学
- 实现百度搜索实时热点爬虫
- Singularity 代码阅读笔记[结构: Struct_Microsoft_Singularity_BootInfo]
- tsp问题——遗传算法解决
- 程序员如何通过兼职赚钱?有哪些渠道?
- 览器野史 UserAgent列传
- pip或pip3安装报错Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming。。。
- VuePress + GitHub Pages 生成静态网站
- 【洛谷】【模拟+栈】P4711 「化学」相对分子质量
- 作为前端,如何帮帝都的朋友租到合适的房子
- 【文末下载地址】Adobe Photoshop 2022原版免注册免登录来啦
- 计算机课程设计-ssm在线点餐系统(沙箱支付)-javaweb外卖系统
- shell实现SSH自动登陆