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();
}
}
Related examples in the same category