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

public class XMidlet extends MIDlet
{
   private Display display;
   private XCanvas canvas;

   public XMidlet()
   {
      display = Display.getDisplay(this);
      canvas = new XCanvas(this);
   }
   public void startApp()
   {
      display.setCurrent(canvas);
   }
   public void pauseApp(){}
   public void destroyApp(boolean b){}
   public void exit()
   {
      destroyApp(false);
      notifyDestroyed();
   }
}

class XCanvas extends Canvas implements CommandListener
{
   private XMidlet midlet;
   private Command cmExit;

   public XCanvas(XMidlet midlet)
   {
      this.midlet = midlet;
      cmExit = new Command("Exit", Command.EXIT, 0);
      addCommand(cmExit);
      setCommandListener(this);
   }

   public void paint (Graphics g) {

      // clean the display
      g.setGrayScale (255);
      g.fillRect (0, 0, getWidth (), getHeight ());

      g.setGrayScale (0);
      g.drawLine (20, 33, 170, 61);
      g.drawRect(40, 65, 60, 40);

      g.setColor(255, 0, 255);
      g.drawArc(10,120,50,50,0,360);

      g.setColor(0, 255, 255);
      g.fillRect(130, 110, 30, 40);
   }
   public void commandAction(Command c, Displayable s)
   {
      if(c == cmExit)
      {
         midlet.exit();
      }
   }
}
