Mega Code Archive

 
Categories / Java Tutorial / J2ME
 

Extends TimerTask

import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Graphics; import javax.microedition.midlet.MIDlet; public class J2MEFixedRateSchedule extends MIDlet {   private Timer aTimer;   private ClockTimerTask aTimerTask;   Displayable d = new ClockCanvas();   private Date currentTime= new Date();   private Calendar now = Calendar.getInstance();   private String nowString = "";   public void startApp() {     d.addCommand(new Command("Exit", Command.EXIT, 0));     d.setCommandListener(new CommandListener() {       public void commandAction(Command c, Displayable s) {         notifyDestroyed();       }     });     now.setTime(currentTime);     nowString = now.get(Calendar.HOUR) + ":" + now.get(Calendar.MINUTE) + ":"         + now.get(Calendar.SECOND) + ":";     aTimer = new Timer();     aTimerTask = new ClockTimerTask();     aTimer.scheduleAtFixedRate(aTimerTask, 10, 1000);     Display.getDisplay(this).setCurrent(d);   }   public void pauseApp() {   }   public void destroyApp(boolean unconditional) {   }   class ClockCanvas extends Canvas {     public void paint(Graphics g) {       int width = getWidth();       int height = getHeight();       g.setGrayScale(255);       g.fillRect(0, 0, width - 1, height - 1);       g.setGrayScale(0);       g.drawRect(0, 0, width - 1, height - 1);       g.drawString(nowString, 10, 10, Graphics.TOP | Graphics.LEFT);     }   }   class ClockTimerTask extends TimerTask {     public final void run() {       currentTime = new Date();       now = Calendar.getInstance();       now.setTime(currentTime);       nowString = now.get(Calendar.HOUR) + ":" + now.get(Calendar.MINUTE) + ":"           + now.get(Calendar.SECOND) + ":";       ((ClockCanvas) d).repaint();     }   } }