问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么用了repaint之后没有反应,是不是还要重写一个repaint方法

发布网友 发布时间:2022-04-12 15:06

我来回答

2个回答

懂视网 时间:2022-04-12 19:28

access数据库的使用大概有两大部分,一是数据的计算与处理,像数据表、查询这些都是来完成数据处理工作的,他们会按照我们的需要完成数据的计算和处理,形成数据信息以供参考;二是用户界面(UI)的制作,这一部分虽然不是核心,但是也非常重要,。因为对于

access数据库的使用大概有两大部分,一是数据的计算与处理,像数据表、查询这些都是来完成数据处理工作的,他们会按照我们的需要完成数据的计算和处理,形成数据信息以供参考;二是用户界面(UI)的制作,这一部分虽然不是核心,但是也非常重要,。因为对于一般用户来讲,不会懂得怎样去建立查询等等这些工作,他们所需要的只是点点按钮就能得到必要的信息,所以,我们需要制作大量的窗体来引导用户进行数据库的操作,以得到他们所需的信息。所以对于一个好的数据库应用系统来讲,这两大部分缺一不可。

在建立窗体,引导用户使用的过程中,经常会遇到这样的问题:有时候用户按下某个命令按钮,当程序开始执行那个按钮所关联的程序时,由于涉及到大量的计算工作,所以电脑运行会变慢,在Access中会表现为屏幕没有任何反应,时间稍长,就会让人感觉是不是死机了?所以,在这种情况下,如果有提示框来告诉用户电脑此时在做什么会比较好,另外这样也可以感觉时间短些,因为没有任何变化的等待会让人感觉更加漫长!

要完成这个即时信息显示窗口,我们首先想到的就是在程序的某一部分加上一段代码,这段代码打开一个新的窗口,窗口中会有相关文字,如“程序正在运行,请稍等……”等等,代码也很简单,在Access中就是

……

DoCmd.OpenForm "wait"

Forms!Wait!lblwait.Caption = "程序正在运行,请稍等……"

……

其中,wait是窗体(Form)的名字,lblwait是窗体中的一个标签(Label)控件的名称,程序运行到省略号这里时,会打开wait窗口,然后把标签控件的名称改为“程序正在运行,请稍等……”。

可是当你真正运行这段程序代码时,会发现效果并不是你想象的那样,wait窗口确实出来了,但是上面只是一片白色区域,没有任何文字,最初你可能觉得是自己的电脑运行慢,显示不出来,但是即使你换到最快的电脑上来运行,结果还会是这样,岂不郁闷?!

这个时候,就轮到Repaint方法大显身手了,将上面的代码稍作修改,如下面这样:

……

DoCmd.OpenForm "wait"

Forms!Wait!lblwait.Caption = "程序正在运行,请稍等……"

Forms!Wait.Repaint

……

再运行一下,就可以看到窗口正常显示出来提示了。

之后,你可以在需要的地方都加上这段代码,把其中的文字换换,就可以在程序的运行过程当中实时提示用户程序在做什么了!

道理其实也很简单,就是在程序运行过程当中,不会实时的更新屏幕显示,这样会加快程序运行的速度,所以在设计到大量计算时,程序就不会有任何显示更新,像死机了一样,但是加入了Repaint方法就会强制更新屏幕显示,就会让我们动态看到程序运行状况了。

热心网友 时间:2022-04-12 16:36

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


V
update()方法--->paint()方法--图形绘制

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

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

update():清除当前显示并调用paint()方法.当然这个update()方法是可以被修改的,我门在另一篇文章关于”双缓冲技术”中会给大家讲到这点.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
三星8英寸平板电脑三星8英寸平板电脑哪个型号好 长城第一墩文化景区-讨赖河吊桥地址在哪里? 珲春景点简介 夏季需要加防冻液吗? 抽血感染艾滋病的概率 清洁剂的作用有哪些 日化产品抗菌抑菌效果怎样 杠杆高低有什么区别 姓赵取什么名字好 赵姓男孩女孩取名字大全 赵姓好听顺口的女孩名字女孩姓赵有气质名字 我家电脑经常IP被更改,这是怎么回事。 大腿肌肉拉伤怎么快好起来? 请问大腿肌肉反复拉伤怎么办 大腿肌肉拉伤怎么治疗才会好? 怎样治理大腿肌肉拉伤 腿部肌肉拉伤,有什么好的方法可以治疗吗? java中repaint()方法到底应该怎么用? oppo手表取消配对还有照片吗 OPPO watch可以看书吗? OPPOwatch能看图吗? oppowatch2微信儿童版能看图片图片吗 “小苏打”做什么用? 好听的食品店名,主要是零食和饮料,谢谢! 打算开一个零食店,想取一个店名,有创意,有内涵,朗朗上口,过目不忘的 深圳发展银行信用卡中心客服工作怎么样,主要工作内容是什么。一般是怎么样的待遇。 零食个性店名 #天猫客服#来深圳一年多了,做的都是天猫客服,工资基本都是三千五左右,不包吃住,现在离职了,找工作 深圳12345政府热线客服有什么待遇 深圳招商银行业务代表(客服岗位) 远程银行中心 这个怎么样 ??? 马上要去深圳平安银行上班了,做客服,工资待遇怎么样?跪求过来人给点经验!@ 武则天秘史里的韩国夫人什么时候没他的戏? 武则天秘史:皇上有没有厌弃,韩国夫人? 《武则天秘史》中的韩国夫人是谁演的 武则天秘史中给韩国夫人名分的是哪集? 武则天秘史刘晓庆第几集冲进门和皇上和姐姐谈话的 武则天秘史上韩国太太死得那一集是那一集? 芈月传女医挚扮演者演过武则天秘史里面的韩国夫人吗 单位定期留存金额最低多少? 邮政定期存款最低限额是多少 半精梳棉用什么英文符号代表? 盘点豆瓣评分恐怖片排行榜前十名,【免费高清】在线观看百度网盘资源 【合集】恐怖片排行榜前十名电影豆瓣,【在线观看】免费百度云资源 如花似玉打一动物 交通事故对方全责我方保险公司不赔偿应该怎么办? 如花似玉啊开什么动物 如花似玉大姑娘,十二生肖是那个肖,? Java中repaint方法具体怎么用? p家是什么牌子? 一个P开头的意大利包 方框里有个p是啥包包品牌