永发信息网

java编程:为什么repaint()没有调用update呢?

答案:4  悬赏:40  手机版
解决时间 2021-03-31 00:29
java编程:为什么repaint()没有调用update呢?
最佳答案
我刚刚也遇到了这个问题,我的解决方法是重写repaint()方法;
对于repaint方法,API中写的是”如果此组件是轻量级组件,则此方法会尽快调用此组件的 paint 方法。否则此方法会尽快调用此组件的
update 方法。“我不知道我的程序属不属于轻量级组件,但是肯定repaint没调用update.所以我只好重写:
public void repaint() {
super.repaint();
update(getGraphics());
}
更改之后就可以了,我是在双缓冲问题上遇到的。
全部回答
完全同意。这涉及到了继承
自己在paint();中写个update(g);
还有点小建议:楼主貌似还有个不好的习惯。。。使用画笔时不先临时保存画笔原来的颜色。。。
建议在用画笔前先 Color tmp = g.getColor(); 用完后g.setColor(tmp);
楼主用的是轻量级的组件JFrame
API中的原话:
repaint
public void repaint(int x,
int y,
int width,
int height)重绘组件的指定矩形区域。
如果此组件是轻量组件,则此方法会尽快调用此组件的 paint 方法。否则此方法会尽快调用此组件的 update 方法。
repaint()需要你自己写覆盖父类的这个方法,你有没指定它调update它怎么会自动去调追问不是说:调用repaint()时,它会自动调用update()然后在调用paint()吗?repaint()走的不是这个流程吗?追答重画的话paint里好像要用super.paint(g)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
菊花扦插该注意什么
做梦梦见一个美女骑自行车载我,我坐在后面,
What a delious smell为什么加a
家里的网络电视是华数TV实在太坑爹太垃圾,想
我的世界怎么制造篝火,营火 来烧树
我只是徐良L门下一个小歌迷,但是L的光辉照耀
cad二维中怎么把三维多段线转换成二维多段线
老郭为什么离开德云社
正品的巴西比戈多少钱一盒?
速生红栎能耐多少低温?适合什么土壤?
how to use ?
在宜家买了搁板和托架,上墙的膨胀螺丝在宜家
造一艘大型航母好,还是造4艘小型航母好
新手为什么不敢晚上开车,夜间开车注意这几点
别克英朗gt前挡风玻璃怎么区别原车的?
推荐资讯
想败眼影盘,除了kate的,大家还有什么推荐
亲力亲为与亲历亲为什么区别
电厂锅炉炉膛出口温度是多少?煤粉炉和循环流
这只是美短虎斑猫 还是银虎斑猫 具体名称!
如何对某用户授予所有权限
2017潇湘签书还是签人
从夏朝到魏晋南北朝之间的所有战役以及时间
The officers narrowly escaped in the hot b
200兆的宽带无线达到200兆,有线只有100
英特ceieron赛扬g182o@2.7ogh2双核是四核吗
新买双鞋但走路时脚弯的的时候,鞋老是碰到脚
蝉和柳树是诗歌吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?