• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 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控制暫停時間。

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【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

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲国产GⅤ精品一区二区 日本中文字幕久久 | 尤物在线官方网站 | 天天做天天爱天天做天天吃中文 | 日韩精品亚洲日韩精品一区 | 色妺妺在线视频 | 日本欧美成综合视频 |

            關于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控制暫停時間。