Sweep.java Source code

Java tutorial

Introduction

Here is the source code for Sweep.java

Source

/*
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) {
            }
        }
    }
}