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