⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timermidlet.java

📁 Sun公司的J2ME官方例程若干
💻 JAVA
字号:
/* * Copyright (c) 2000-2001 Sun Microsystems, Inc. All Rights Reserved. */package examples.timermidlet;import java.lang.*;import java.io.*;import java.util.*;import javax.microedition.lcdui.*;import javax.microedition.midlet.*;/** * A simple class that shows an example of using a Timer and * a TimerTask. * * This MIDlet creates two gauges. One gauge gaugeOne, * sets elements from low to high. The other, gaugeTwo, * set elements from high to low. In effect, this has * gaugeOne "going up", and gaugeTwo "going down." * * The two timers fire at different intervals. * * There are two commands on our form: *  * OK: toggles whether the times are active or not. * EXIT: exits the MIDlet. */public class TimerMIDlet extends MIDlet implements CommandListener {    // number of elements in gauge    final private static int GAUGE_MAX = 10;    private boolean timersRunning; // tracks state of timers    private Display myDisplay;     // handle to the display    private Gauge gaugeOne;        // "going up" gauge    private Gauge gaugeTwo;        // "going down" gauge    private Form myScreen;         // form on which to                                    // place gauges    private Command cmdOK;         // OK command    private Command cmdExit;       // EXIT command    private Timer timer;    private MyTimerTask timerTaskOne;    private MyTimerTask timerTaskTwo;    /**     * Internal class that provides a TimerTask.     */    private class MyTimerTask extends TimerTask {        private Gauge myGauge; // reference to gauge        private boolean goUp;  // if true, go up        private int num;       // number of times called        /**         * Public constructor: stores "direction" and a reference to         * a gauge.         */        public MyTimerTask(Gauge g, boolean up) {            myGauge = g;            goUp = up;        }        /**         * As the timer fires, this method is invoked. Set gauge         * based on goUp         */        public void run() {            num++;            myGauge.setValue(goUp ?                             GAUGE_MAX -(num % GAUGE_MAX) :                             num % GAUGE_MAX);        }    }    /**     * Public constructor: gets handle to display,     * creates form, gauges, and commands.     */    public TimerMIDlet() {        myDisplay = Display.getDisplay(this);        myScreen = new Form("TimerMIDlet");        gaugeOne = new Gauge("Up Gauge",                             false,                             GAUGE_MAX,                             0);        myScreen.append(gaugeOne);        gaugeTwo = new Gauge("Down Gauge",                             false,                             GAUGE_MAX,                             GAUGE_MAX);        myScreen.append(gaugeTwo);        cmdOK = new Command("OK", Command.OK, 1);        cmdExit = new Command("Exit", Command.EXIT, 1);        myScreen.addCommand(cmdOK);        myScreen.addCommand(cmdExit);        myScreen.setCommandListener(this);    }    /**     * Changes the state of timers to/from active to/from     * not-active.     */    private void flipFlop() {        if (timersRunning) {            timerTaskOne.cancel();            timerTaskTwo.cancel();            timer.cancel();            timersRunning = false;        } else {            timer = new Timer();            timerTaskOne = new MyTimerTask(gaugeOne, false);            timerTaskTwo = new MyTimerTask(gaugeTwo, true);            timer.schedule(timerTaskOne, 0, 1000);            timer.schedule(timerTaskTwo, 0, 1500);            timersRunning = true;        }    }    /**     * Called by the system to start our MIDlet.    * @exception MIDletStateChangeException     */    protected void startApp() throws MIDletStateChangeException {        myDisplay.setCurrent(myScreen);        flipFlop();    }    /**     * Called by the system to pause our MIDlet.     * No actions required by our MIDLet.     */    protected void pauseApp() {}    /**     * Called by the system to end our MIDlet.     * No actions required by our MIDLet.     */    protected void destroyApp(boolean unconditional) {}    /***     * Respond to command selections. Process two commands:     *      * OK: flip flop the timers to/from active     * EXIT: exit this MIDlet     *      */    public void commandAction(Command c, Displayable d) {        if (c == cmdOK) {            flipFlop();        } else if (c == cmdExit) {            destroyApp(false);            notifyDestroyed();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -