Selasa, 31 Mei 2011

Penggunaan Timer dan TimerTask pada Mobile

Class TimerTask merupakan class abstract yang berfungsi sebagai class dasar untuk semua penjadwalan proses. Sedangkan class Timer membuat dan mengatur thread dimana proses dieksekusi.
supaya tidak terlalu membingungkan , kita harus membuat 2 class , yang pertama class canvas dan yang kedua class midlet .

Inilah contoh script classcanvasnya :



import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class SplashTimerCanvas extends Canvas
{
    private MidletSplashTimer midletTT;
    int w, h, hImg;
    private Image img;
    public SplashTimerCanvas(MidletSplashTimer midlet)
    {
        w = getWidth();
        h = getHeight();
        midletTT = midlet;
        try {
        img = Image.createImage("/Java.jpg");
        } catch (java.io.IOException e) { }
//        hImg = img.getHeight();
    }

    protected void paint(Graphics g)
    {
        g.setColor(255, 255, 255);
        g.fillRect(0, 0, w, h);
        g.drawImage(img, w/2, h/2, Graphics.HCENTER | Graphics.VCENTER);
    }

    protected void hideNotify() {
    midletTT.stopTimer();
    }
    protected void showNotify() {
    midletTT.startTimer();
    }

    class SuccesCanvas extends Canvas
    {
        protected void paint(Graphics g)
        {
        g.setColor(255, 255, 255);
        g.fillRect(0, 0, getWidth(), getHeight());
        g.setColor(255, 0, 0);
        g.drawString("BERHASIL", getWidth()/2, (getHeight()/2)-10, Graphics.TOP
        | Graphics.HCENTER);
        g.drawString("Silakan Masuk", getWidth()/2, (getHeight()/2)+10,
        Graphics.TOP | Graphics.HCENTER);
        }
    }
}

dan ini script class midletnya :

import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.*;

/**
 * @author Administrator
 */
public class MidletSplashTimer extends MIDlet
{
    private SplashTimerCanvas ttCanvas;
    private Display display;
    private Timer timer;
    private TimerTask timerTask;
    public MidletSplashTimer() { }

    public void startApp()
    {
        display = Display.getDisplay(this);
        ttCanvas = new SplashTimerCanvas(this);
        display.setCurrent(ttCanvas);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    void stopTimer()
    {
        timer.cancel();
        timerTask.cancel();
    }

    void startTimer()
    {
        timer = new Timer();
        timerTask = new TimerTask()
    {
        public void run() {
        display.setCurrent(new SuccesCanvas());
        }
    };
    timer.schedule(timerTask, 3000);
    }
}

Tampilan pertama adalah seperti ini :



Setelah 3 detik atau 3000 milisecon, maka tampilannya akan seperti ini :

Tidak ada komentar:

Posting Komentar