Repaint unable to call paint
Hi , I'm trying animation by using TimerTask at fixed rate.
I have checked while debugging that my x-coordinate is incremented but the repaint is unable to direct to the paint method of Canvas class.
Here's the code:/*
* anim1.java
*
*
*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
publicclass anim1extends MIDlet{
Canvas1 can1=null;
Timer t=null;
TTask tt=null;
public anim1()
{
can1=new Canvas1();
t=new Timer();
tt=new TTask();
t.scheduleAtFixedRate(tt,50,20);
}
publicvoid startApp(){
Display.getDisplay(this).setCurrent(can1);
}
publicvoid pauseApp(){
}
publicvoid destroyApp(boolean unconditional){
can1=null;
t=null;
tt=null;
}
}
class Canvas1extends Canvas
{
publicstaticint width;
boolean once;
public Canvas1()
{
once=true;
}
publicvoid paint(Graphics g)
{
if(once)
{
width=getWidth();
once=false;
}
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(255,0,0);
g.drawString("Text",TTask.x,TTask.y,0);
}
}
class TTaskextends TimerTask
{
publicstaticint x;
publicstaticint y;
Canvas1 can1=null;
public TTask()
{
x=0;
y=0;
can1=new Canvas1();
}
publicvoid run()
{
if(x<Canvas1.width)
{
x+=5;
}
can1.repaint();
}
}
>

