首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

paint()何时被调用?解决思路

2012-01-14 
paint()何时被调用?canvas类中的抽象方法paint()在何时被调用?是在构造函数中被隐式调用吗?publicmyCanvas

paint()何时被调用?
canvas   类中的抽象方法paint()在何时被调用   ?
是在构造函数中被隐式调用吗?

public   myCanvas   extends   Canvas{
  myCanvas(){
    //paint()在此处被调用?
    #the   first   code   line;
    //还是在此处被调用?
  }
 
  protected   void   paint(Graphics   g){
    //...
  }
}

[解决办法]
在构造方法中最后进入的,打印一下就知道了
[解决办法]
setCurrent
[解决办法]
在setCurrent以及repaint()以及showNotify之后调用
[解决办法]
汗一个楼上的
当然是先运行构造方法再运行paint了

setCurrent(new MyCanvas())
实际执行顺序是
MyCanvas canvas=new MyCanvas();//显然会调用构造方法
setCurrent(canvas);//再调用paint()
[解决办法]
当你生成这个类的一个是实例的时候就调用了,然后当你setCurrentt后就跳转到你的Canvas页面把paint出来的东西绘制到屏幕上··
[解决办法]
我们不用/能自己调用。如果我们需要刷新屏幕,需要调用类似update()的函数。
setCurrent()当然会调到paint()函数。
切换ui,就用setCurrent();
想更新当前的ui就用update()。

blog: http://java23.com/hb/
[解决办法]
这是一个系统回调函数。
当setCurrent时,以及repaint,以及serviceRepaints时,发送消息至虚拟机,然后虚拟机回调。
当应用切换到电话然后又切回来的时候,由系统先回调showNotify然后paint。

热点排行