中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      TimerTask與Timer類的應用

      時間:2024-09-04 17:03:47 SUN認證 我要投稿
      • 相關推薦

      關于TimerTask與Timer類的應用

        Timer類就像一個定時器,用于設置特定的時間或周期,來配合線程動作的執行,但是只調用Timer無法執行線程動作,必須配合另一個類TimerTask的方法才能使用。從示例6-13中可以發現Timer類與Thread類很相近。

        public Timer ()

        創建一個新的timer對象。

        Timer屬于計時器類,Time建立后,需要調用schedule()方法來執行計劃任務,計劃調度的方法有許多運用方式:

        public void schedule (TimerTask task, long delay)

        執行任務前先等待一段時間。task代表要執行的任務,delay代表需要等待的時間,單位為毫秒(1000毫秒為1秒)。

        public void schedule (TimerTask task,

        Date time)

        在指定的系統時間time之后開始執行任務。

        public void schedule (TimerTask task,

        long delay,

        long period)

        延遲一段時間后開始執行任務,任務按照設定的周期執行。傳入的參數:delay為延遲時間,period為周期時間,單位均為毫秒。

        public void schedule(TimerTask task,

        Date firstTime,

        long period)

        在指定的時間后開始執行任務,任務按照設定的周期執行。傳入的參數:firstTime為指定等待時間,period為周期時間,單位都是毫秒。

        public void scheduleAtFixedRate (TimerTask task,

        long delay,

        long period)

        執行任務內容后,等待delay時間,再按照period周期時間繼續執行任務,單位都是毫秒。

        public void scheduleAtFixedRate

        (TimerTask task,

        Date firstTime,

        long period)

        先等待一段時間firstTime,再執行計劃任務,然后按照period周期時間繼續執行任務,單位都是毫秒。

        public void cancel()

        停止timer計時。

        有了Timer的各項調用方法,還不能直接執行計劃任務,需要跟TimerTask類共同運用才能使計劃任務開始運行。TimerTask所包含的相關方法如下:

        public void TimerTask ()

        創建一個新的TimerTask對象。

        public abstract void run()

        運行計劃任務的工作內容。

        public void cancel()

        中止TimerTask類的執行流程,不再執行所調度的工作內容。

        public void scheduleExcutionTime()

        實際運行計劃任務所用的時間。

        示例6-13

        /×

        Timer和TimerTask類運行計劃任務

        ×/

        import javax.microedition.midlet.×;

        import javax.microedition.lcdui.×;

        import java.util.×;

        public class threadDemo3 extends MIDlet

        {

        Display display;

        canvasThread canvasthread;

        public threadDemo3()

        {

        canvasthread=new canvasThread();

        display=Display.getDisplay(this);

        }

        public void startApp()

        {

        display.setCurrent(canvasthread);

        }

        public void pauseApp(){}

        public void destroyApp(boolean unconditional){}

        public class canvasThread extends Canvas

        {

        int gameaction=0;

        int view=0;

        boolean again;

        //聲明一個Tim er類

        Timer timers;

        Image[] cloudImage;

        Image[] sunImage;

        public canvasThread()

        {

        timers=new Timer();

        try{

        cloudImage = new Image[]{

        Image.createImage("/cloud-1.png"),

        Image.createImage("/cloud-2.png"),

        Image.createImage("/cloud-3.png"),

        Image.createImage("/cloud-4.png")

        };

        sunImage = new Image[]{

        Image.createImage("/sun-1.png"),

        Image.createImage("/sun-2.png"),

        Image.createImage("/sun-3.png"),

        Image.createImage("/sun-4.png")

        };

        }catch(Exception ex){}

        }

        public void keyPressed(int keyCode)

        {

        gameaction=getGameAction(keyCode);

        switch(gameaction)

        {

        case FIRE:

        //運行計劃任務

        actionView();

        break;

        }

        }

        public void paint(Graphics g)

        {

        g.setColor(0xFFFFFF);

        g.fillRect(0, 0, getWidth(), getHeight());

        g.setColor(0);

        g.drawString("Timer線程動畫應用", getWidth()/2, 20,

        Graphics.HCENTER | Graphics.TOP);

        g.drawImage(sunImage[view], getWidth()/2, 50, Graphics.HCENTER |

        Graphics.TOP);

        g.drawImage(cloudImage[view], getWidth()/2, 50, Graphics.HCENTER

        | Graphics.TOP);

        }

        private void actionView()

        {

        /×

        安排一個計劃任務

        運行任務內容:goCanvas()

        delay時間:500毫秒

        period周期:500毫秒

        ×/

        timers.schedule(new goCanvas(), 500, 500);

        }

        //計劃任務程序內容

        class goCanvas extends TimerTask

        {

        public void run()

        {

        repaint();

        if(again)

        view--;

        else

        view++;

        if(again && view==0)

        again=false;

        if(!again && view==3)

        again=true;

        }

        }

        }

        }

        【說明】本線程使用計劃任務進行,所達到的效果跟使用線程的方式是相同的。只是在計劃的內容上有所不同,例如不需要sleep()暫停時間,而是由schedule控制暫停時間。

      【TimerTask與Timer類的應用】相關文章:

      小學雞兔同籠類應用題03-31

      英語四級應用類作文寫作技巧03-30

      2016小升初數學常考的4類應用題01-23

      2016考研英語:攻克高分作文之告示類應用文03-19

      2017中職類計算機應用基礎試題「附答案」03-06

      速錄介紹及應用03-05

      EDA技術與應用03-31

      草坪的景觀應用03-13

      計算機應用技術的應用與發展03-27

      主站蜘蛛池模板: 亚洲人成网站在线播放小说| 亚洲中文欧美日韩在线| 亚洲自拍系列在线观看| 日本久久一区二区三区高清| 国产精品乱子伦一区二区三区| 彝良县| 久久一日本道色综合久久大香 | 91丝袜美腿高跟国产老师在线| 亚洲AV永久无码精品表情包| 波密县| 张家川| 治多县| 人妻一区二区三区免费看| 久久99精品中文字幕在| 亚洲熟女av超清一区二区三区| 精品少妇人妻成人一区二区| 免费国产一级片内射老| 日本女优中文字幕看片| 国产麻豆精品久久一二三| 精品国产午夜久久久久九九| 古田县| 99热高清亚洲无码| 加勒比东京热综合久久| jiZZ国产在线女人水多| 国产成人亚洲合集青青草原精品| 美女被射视频在线观看91| 亚洲成AV人国产毛片| 亚洲无码毛片免费视频在线观看| 久久99精品久久久久九色| 亚洲地区一区二区三区| 亚洲午夜无码视频在线播放| 国产精品亚洲综合色区韩国| 日韩精品一区二区三区四区视频| 日韩精品成人一区二区三区久久久 | 久久婷婷国产五月综合色| 国产福利小视频91| 亚洲中文字幕av一区二区三区人| 亚洲不卡av不卡一区二区| 日韩人妻中文字幕一区二区三区| 亚洲一区极品美女写真在线看| 免费无码又爽又刺激又高潮的视频|