import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class YMidlet extends MIDlet
{
   private Display display;
   private YCanvas canvas;

   public YMidlet()
   {
      display = Display.getDisplay(this);
      canvas = new YCanvas(this);
   }
   public void startApp()
   {
      display.setCurrent(canvas);
   }
   public void pauseApp(){}
   public void destroyApp(boolean b){}
   public void exit()
   {
      destroyApp(false);
      notifyDestroyed();
   }
}
class YCanvas extends Canvas implements CommandListener
{
   private YMidlet midlet;
   private Command cmExit;
   private String text = null;

   public YCanvas(YMidlet 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.setColor(0,0,255);
      g.drawLine (0, 10, getWidth(), 10);

      if(text != null)
	  {
          g.setColor(0, 0, 0);
	      g.drawString(text, 10, 30, 0);
	  }
   }
   protected void keyPressed(int keyCode)
   {
         text = "pressed " + getKeyName(keyCode);
         repaint();
   }
   protected void keyReleased(int keyCode)
   {
         text = "released " + getKeyName(keyCode);
         repaint();
   }
   public void commandAction(Command c, Displayable s)
   {
      if(c == cmExit)
      {
         midlet.exit();
      }
   }
}

