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。