Mega Code Archive

 
Categories / Java / J2ME
 

Pointer Example

/* J2ME: The Complete Reference James Keogh Publisher: McGraw-Hill ISBN 0072227109 */ //jad file (please verify the jar size) /* MIDlet-Name: PointerExample MIDlet-Version: 1.0 MIDlet-Vendor: MyCompany MIDlet-Jar-URL: PointerExample.jar MIDlet-1: PointerExample, , PointerExample MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 MIDlet-JAR-SIZE: 100 */ import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class PointerExample extends MIDlet {   private Display  display;          private MyClass canvas;      public PointerExample()   {     display = Display.getDisplay(this);     canvas  = new MyClass (this);   }   protected void startApp()   {     display.setCurrent( canvas );   }   protected void pauseApp()   {    }   protected void destroyApp( boolean unconditional )   {    }   public void exitMIDlet()   {     destroyApp(true);     notifyDestroyed();   } } class MyClass extends Canvas implements CommandListener {   private Command exit;             private Command erase;     private boolean eraseFlag = false;   private boolean isFirstPaint;   private int sX = 0,sY = 0, cX = 0, cY = 0;   private PointerExample pointerExample;   public MyClass (PointerExample pointerExample)   {     this.pointerExample = pointerExample;     exit = new Command("Exit", Command.EXIT, 1);     erase = new Command("Erase", Command.SCREEN, 1);         addCommand(exit);     addCommand(erase);     setCommandListener(this);     isFirstPaint = true;   }    protected void paint(Graphics graphics)   {     if (eraseFlag || isFirstPaint)     {       graphics.setColor(255, 255, 255);       graphics.fillRect(0, 0, getWidth(), getHeight());       eraseFlag = isFirstPaint = false;       sX = 0;       sY = 0;       cX = 0;       cY = 0;       return;     }     graphics.setColor(0, 0, 0);     graphics.drawLine(sX, sY, cX, cY);     sX = cX;     sY = cY;   }   public void commandAction(Command command, Displayable displayable)   {     if (command == exit)       pointerExample.exitMIDlet();     else if (command == erase)     {       eraseFlag = true;        repaint();     }   }   protected void pointerPressed(int x, int y)   {     sX = x;     sY = y;   }   protected void pointerDragged(int x, int y)   {     cX = x;     cY = y;            repaint();   }  }