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();

}

}

>

[4055 byte] By [rock_wina] at [2007-10-3 2:59:19]
# 1
try calling serviceRepaints() after calling paint.
deepspacea at 2007-7-14 20:48:54 > top of Java-index,Java Mobility Forums,Java ME Technologies...
# 2

Changed your code little bit works on emulator

don't know about device ;)

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

import java.util.*;

public class anim1 extends MIDlet {

Canvas1 can1=null;

Timer t=null;

TTask tt=null;

public static Display display;

public anim1()

{

display= Display.getDisplay(this);

can1=new Canvas1();

t=new Timer();

tt=new TTask();

t.scheduleAtFixedRate(tt,50,100);

display.setCurrent(can1);

anim1.display.callSerially(tt);

}

public void startApp() {

}

public void pauseApp() {

}

public void destroyApp(boolean unconditional) {

can1=null;

t=null;

tt=null;

}

}

class Canvas1 extends Canvas

{

public static int width;

boolean once;

public Canvas1()

{

once=true;

}

public voidpaint(Graphics g)

{

System.out.print("\npaint");

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);

repaint();

}

}

class TTask extends TimerTask

{

public static int x;

public static int y;

Canvas1 can1=null;

public TTask()

{

x=0;

y=0;

can1=new Canvas1();

}

public void run()

{

if(x<Canvas1.width)

{

x+=5;

}

System.out.print("\nrun");

//can1.repaint(x-5,y,100,100);

// can1.repaint(x,y,100,100);

can1.repaint();

// can1.serviceRepaints();

}

}>

sailesh_dita at 2007-7-14 20:48:54 > top of Java-index,Java Mobility Forums,Java ME Technologies...