update()和repaint方法都自动调用paint方法,有什么区别? 有一点我可以肯定,这两者都会自动调用paint方法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 转的paint()是在组件第一次显示时调用,完成组件的绘制。 update()进行初始化(背景色填充、设置组件前景色)后调用paint()绘制组件。 repaint()则调用update()。它之所以存在是因为要支持以不同的方式进行update()操作,如:repaint();repaint(long time);repaint(int x,int y,int width,int height),无参的repaint()只是对update()进行简单的调用。 可以说,paint()是最原子的操作,update()则允许在它之上对它的外观进行一些定制,repaint()则偏重于定制调用的方式:你可以在指定时间间隔后进行重画,也可以在指定区域内绘制组件,等等。 调用update()比 repaint()得坐标要向下低20个左右的像素 有一个东西叫googlerepaint()方法用于重绘组件,该方法有下面四种形式:1。public void repaint()2。public void repaint(long tm)//指定调用update方法之前等待的最大毫秒数tm3。public void repaint(int x,int y,int width,int height)//重绘组件的指定矩形区域4。public void repaint(ling tm,int x,int y,int width,int height)repaint方法不总是马上执行,Java虽然会尽可能快的执行repaint,当Applet运行在较慢的平台上或计算机较忙时,应该考虑使用第2或4种repaint方法,指定在多长时间内必须执行repaint,否则就放弃。Update()方法用于更新组件,AWT调用该方法以响应对repaint()的调用,在调用update()或paint()之前,组件的外观将不会发生改变。它更新组件的步骤为:通过充填组件的背景色来清除该组件,然后,设置图形上下文(其原点为该组件的左顶点)的颜色为该组件的前景色,最后,调用paint方法完整地重绘该组件。该方法的原型为:Public void update(Graphics g)Paint()方法用于绘制组件,当需要绘制组件的内容时调用该方法。该方法的原型为:Public void paint(Graphics g) 如果调用repaint(),则相当于先自动调用update(),再自动调用paint()方法。 首先你要分清轻量级组件和重量级组件对于轻量级组件repaint方法会尽快调用paint方法对于重量级组件repaint方法会调用update方法来看下Canvas类的update方法public void update(Graphics g) { g.clearRect(0, 0, width, height); paint(g); }对于重量级组件repaint方法只是调用update方法而paint方法是默认update方法的一部分所以如果对于重量级组件你重写了update方法让它不调用paint方法那你的repaint的方法就不会调用到paint方法了你所肯定的东西在这种条件下是错的 如果你repaint()就首先调用update(); 自己写的求质数的代码 java中读文件的时候能不能忽略空格啊? 编写一个具有两个方法的基类base, 用过 htmlparser 的朋友,请来帮个忙 谁用过installanywhere? 我切底被搞晕了!关于调ORacle的存储过程。 大家谁知道EIS是什么? 如何才能在IE5中成功运行含有Swing以及JBCL组件的Applet? 新大陆面试题,怎么才能true? compare(Student s1, Student s2) 这里为什么要传两个值啊?求大神详解。 如何把byte数据,无符号的扩展为int类型??? 如何设置ThreadStackSize大小 ?顶者给分,急。
update()进行初始化(背景色填充、设置组件前景色)后调用paint()绘制组件。
repaint()则调用update()。它之所以存在是因为要支持以不同的方式进行update()操作,如:repaint();repaint(long time);repaint(int x,int y,int width,int height),无参的repaint()只是对update()进行简单的调用。
可以说,paint()是最原子的操作,update()则允许在它之上对它的外观进行一些定制,repaint()则偏重于定制调用的方式:你可以在指定时间间隔后进行重画,也可以在指定区域内绘制组件,等等。
repaint方法不总是马上执行,Java虽然会尽可能快的执行repaint,当Applet运行在较慢的平台上或计算机较忙时,应该考虑使用第2或4种repaint方法,指定在多长时间内必须执行repaint,否则就放弃。Update()方法用于更新组件,AWT调用该方法以响应对repaint()的调用,在调用update()或paint()之前,组件的外观将不会发生改变。它更新组件的步骤为:通过充填组件的背景色来清除该组件,然后,设置图形上下文(其原点为该组件的左顶点)的颜色为该组件的前景色,最后,调用paint方法完整地重绘该组件。该方法的原型为:Public void update(Graphics g)Paint()方法用于绘制组件,当需要绘制组件的内容时调用该方法。该方法的原型为:Public void paint(Graphics g)
repaint方法会尽快调用paint方法对于重量级组件
repaint方法会调用update方法
来看下Canvas类的update方法public void update(Graphics g) {
g.clearRect(0, 0, width, height);
paint(g);
}
对于重量级组件repaint方法只是调用update方法
而paint方法是默认update方法的一部分
所以如果对于重量级组件
你重写了update方法让它不调用paint方法
那你的repaint的方法就不会调用到paint方法了
你所肯定的东西在这种条件下是错的