10 个解决方案
#1
转的
paint()是在组件第一次显示时调用,完成组件的绘制。
update()进行初始化(背景色填充、设置组件前景色)后调用paint()绘制组件。
repaint()则调用update()。它之所以存在是因为要支持以不同的方式进行update()操作,如:repaint();repaint(long time);repaint(int x,int y,int width,int height),无参的repaint()只是对update()进行简单的调用。
可以说,paint()是最原子的操作,update()则允许在它之上对它的外观进行一些定制,repaint()则偏重于定制调用的方式:你可以在指定时间间隔后进行重画,也可以在指定区域内绘制组件,等等。
paint()是在组件第一次显示时调用,完成组件的绘制。
update()进行初始化(背景色填充、设置组件前景色)后调用paint()绘制组件。
repaint()则调用update()。它之所以存在是因为要支持以不同的方式进行update()操作,如:repaint();repaint(long time);repaint(int x,int y,int width,int height),无参的repaint()只是对update()进行简单的调用。
可以说,paint()是最原子的操作,update()则允许在它之上对它的外观进行一些定制,repaint()则偏重于定制调用的方式:你可以在指定时间间隔后进行重画,也可以在指定区域内绘制组件,等等。
#2
感觉楼上说来说去还是有点糊,感觉好象一样。
#3
调用update()比 repaint()得坐标要向下低20个左右的像素
#4
有一个东西叫google
repaint()方法用于重绘组件,该方法有下面四种形式:
1。public void repaint()
2。public void repaint(long tm)
//指定调用update方法之前等待的最大毫秒数tm
3。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()方法用于重绘组件,该方法有下面四种形式:
1。public void repaint()
2。public void repaint(long tm)
//指定调用update方法之前等待的最大毫秒数tm
3。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)
#5
3楼为什么这么说,要低20个象素点????
#6
后天结贴,求答案,大侠。
#7
如果调用repaint(),则相当于先自动调用update(),再自动调用paint()方法。
#8
首先你要分清轻量级组件和重量级组件
对于轻量级组件
repaint方法会尽快调用paint方法
对于重量级组件
repaint方法会调用update方法
来看下Canvas类的update方法
对于重量级组件repaint方法只是调用update方法
而paint方法是默认update方法的一部分
所以如果对于重量级组件
你重写了update方法让它不调用paint方法
那你的repaint的方法就不会调用到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方法了
你所肯定的东西在这种条件下是错的
#9
如果你repaint()就首先调用update();
#10
是这样吗
#1
转的
paint()是在组件第一次显示时调用,完成组件的绘制。
update()进行初始化(背景色填充、设置组件前景色)后调用paint()绘制组件。
repaint()则调用update()。它之所以存在是因为要支持以不同的方式进行update()操作,如:repaint();repaint(long time);repaint(int x,int y,int width,int height),无参的repaint()只是对update()进行简单的调用。
可以说,paint()是最原子的操作,update()则允许在它之上对它的外观进行一些定制,repaint()则偏重于定制调用的方式:你可以在指定时间间隔后进行重画,也可以在指定区域内绘制组件,等等。
paint()是在组件第一次显示时调用,完成组件的绘制。
update()进行初始化(背景色填充、设置组件前景色)后调用paint()绘制组件。
repaint()则调用update()。它之所以存在是因为要支持以不同的方式进行update()操作,如:repaint();repaint(long time);repaint(int x,int y,int width,int height),无参的repaint()只是对update()进行简单的调用。
可以说,paint()是最原子的操作,update()则允许在它之上对它的外观进行一些定制,repaint()则偏重于定制调用的方式:你可以在指定时间间隔后进行重画,也可以在指定区域内绘制组件,等等。
#2
感觉楼上说来说去还是有点糊,感觉好象一样。
#3
调用update()比 repaint()得坐标要向下低20个左右的像素
#4
有一个东西叫google
repaint()方法用于重绘组件,该方法有下面四种形式:
1。public void repaint()
2。public void repaint(long tm)
//指定调用update方法之前等待的最大毫秒数tm
3。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()方法用于重绘组件,该方法有下面四种形式:
1。public void repaint()
2。public void repaint(long tm)
//指定调用update方法之前等待的最大毫秒数tm
3。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)
#5
3楼为什么这么说,要低20个象素点????
#6
后天结贴,求答案,大侠。
#7
如果调用repaint(),则相当于先自动调用update(),再自动调用paint()方法。
#8
首先你要分清轻量级组件和重量级组件
对于轻量级组件
repaint方法会尽快调用paint方法
对于重量级组件
repaint方法会调用update方法
来看下Canvas类的update方法
对于重量级组件repaint方法只是调用update方法
而paint方法是默认update方法的一部分
所以如果对于重量级组件
你重写了update方法让它不调用paint方法
那你的repaint的方法就不会调用到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方法了
你所肯定的东西在这种条件下是错的
#9
如果你repaint()就首先调用update();
#10
是这样吗