This Java tips explains how to work with Canvas in mobile applications. The Canvas class is a base class for writing applications that need to handle low-level events and to issue graphics calls for drawing to the mobile display. Game applications will likely make heavy use of the Canvas class.

 import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class CanvasDemo extends MIDlet {
    
    private boolean boolMotion=false;    
    private int iX=10,iY=60;    
    
    Display mDisplay;
    Thread th;
    
    public void destroyApp(boolean unconditional){}
    
    public void pauseApp() {}
    
    public void startApp() {
        mDisplay = Display.getDisplay(this);
        final MyCanvas can = new MyCanvas();
        mDisplay.setCurrent(can);
    }
    
}

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MyCanvas extends Canvas implements Runnable {
    int count;
    public MyCanvas() {
        Thread th=new Thread(this);
        th.start();
    }
    
    //Drawing on canvas
    public void paint(Graphics g) {
        g.setColor(122,122,122);
        g.fillRect(100,30,40,40);
        g.drawString("counter="+count,0,80,g.TOP|g.LEFT);
    }
    
    //Handling keyEvents
    protected void keyPressed(int keyCode) {
        repaint();
    }
    
    public void run() {
        while(true) {
            count++;
            try {
                Thread.sleep(1000);
            }catch(Exception e){}
            repaint();
            count%=1000;
        }        
    }    
}