[Java] setTimeout fonksiyonu (Özel Üretim ;))

merakettim

Homo Sapiens Sapiens
Özel üye
Merhaba arkadaşlar.
Bildiğiniz üzere Javada setTimeout adında bi fonksiyon veya sınıf yok. Burada sizlere javaScript'de kullanılan setTimeout fonksiyonunun çakmasını paylaşacam. Bu sınıfı Timer ve TimerTask'dan devşirdim. Umarım projelerinizde işinizi görür ;)

Sınıfımızın adı TimeOut.java
Kod:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package paketadi;

import java.util.Timer;
import java.util.TimerTask;
import javafx.application.Platform;

/**
 *
 * @author Sercan
 */
abstract public class TimeOut implements tamamlanincaYap{
    private Timer zamanlayici=new Timer();
     private TimerTask gorev;
     
     TimeOut(){
      gorev =new TimerTask() {

                    @Override
                    public void run() {
                       
                           Platform.runLater(new Runnable(){


                               @Override
                               public void run() {
                                   tamamlaninca();
                               }
                           });
                           
                                 
                    }
             };
     
     }
     
     public void setTimeout(long delay,long period){
     zamanlayici.schedule(gorev,delay,period);
     }
     
     public void clearTimeout(){
     zamanlayici.cancel();
     }
}
interface tamamlanincaYap{

    public abstract void tamamlaninca();
}

Sınıf çağrısı:

Kod:
 public TimeOut zamanla;
 zamanla=new TimeOut() {
                          @Override
                          public void tamamlaninca() {
                             System.out.println("Tatatataaaaaam. Her 5sn'de bir bu çıktı basılacak. :)");
/*kod bloğu buraya*/
                          }
                      };
            zamanla.setTimeout(0,5000);//ilk parametre ilk basılacak zaman, sonraki parametre periyot.

zamanla.clearTimeout();//Bu da durdurmak için

Aslında biraz interval'a benzedi ama iş görür en azından. :)

Kolay gelsin;)
 
Top