Mega Code Archive

 
Categories / Java / J2ME
 

Sweep

/* Wireless Java 2nd edition  Jonathan Knudsen Publisher: Apress ISBN: 1590590775  */ import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class Sweep  extends MIDlet {   public void startApp() {     final SweepCanvas sweeper = new SweepCanvas();     sweeper.start();          sweeper.addCommand(new Command("Exit", Command.EXIT, 0));     sweeper.setCommandListener(new CommandListener() {       public void commandAction(Command c, Displayable s) {         sweeper.stop();         notifyDestroyed();       }     });          Display.getDisplay(this).setCurrent(sweeper);   }      public void pauseApp() {}   public void destroyApp(boolean unconditional) {} } class SweepCanvas extends Canvas implements Runnable {   private boolean mTrucking;   private int mTheta;   private int mBorder;   private int mDelay;      public SweepCanvas() {     mTheta = 0;     mBorder = 10;     mDelay = 50;   }      public void start() {     mTrucking = true;     Thread t = new Thread(this);     t.start();   }      public void stop() {     mTrucking = false;   }        public void paint(Graphics g) {     int width = getWidth();     int height = getHeight();          // Clear the Canvas.     g.setGrayScale(255);     g.fillRect(0, 0, width - 1, height - 1);          int x = mBorder;     int y = mBorder;     int w = width - mBorder * 2;     int h = height - mBorder * 2;     for (int i = 0; i < 8; i++) {       g.setGrayScale((8 - i) * 32 - 16);       g.fillArc(x, y, w, h, mTheta + i * 10, 10);       g.fillArc(x, y, w, h, (mTheta + 180) % 360 + i * 10, 10);     }   }      public void run() {     while (mTrucking) {       mTheta = (mTheta + 1) % 360;       repaint();       try { Thread.sleep(mDelay); }       catch (InterruptedException ie) {}     }   } }