JavaFX uruchamianie watku o określonej godzinie

Odpowiedz Nowy wątek
2014-12-28 16:38
PoczatkujacaProgra
0

Witam

Zmagam sie z takim problemem.
Posiadam liste LinkedList w której zapisałam godziny wykonania danej metody.
Jak w JavieFx mogę napisać metodę w której o określonej porze będzie uruchamiała metoda.
Czyli jeżeli mam 12:00 12:04 12:00 to metoda która jest na oddzielnym wątku uruchamiała sie właśnie o tych godzinach. Prosze pomóżcie.

Pozostało 580 znaków

2014-12-28 16:50
0

Timer? https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-29 11:57
M
0

Robiłam tak ale problem w tym jest że watki musza uruchamiac sie o konkretnej godzinie. Zrobiłam to w ten sposób

    private void startPlane(){
        LocalTime nowTime= LocalTime.now();
        currentFlightId =FlightList.getNextFlight(); //wyznaczanie id najblizszego lecącego samolotu
        Flight currentFlight =FlightList.getListflight().get(currentFlightId); //samolot lecacy najszybciej
        differenceTime=Duration.between(LocalTime.now(),currentFlight.getDepartureTime()).getSeconds(); //za ile ma on wyleciec
 
        timer.schedule(task,0,differenceTime*1000); //opóznienie ze samolot musi czekać x czasu aby wyleciec (podane w ms);
 
    }
 
    public class MyTask extends TimerTask 
    {
         public void run() 
         {  
                Flight currentFlight =FlightList.getListflight().get(currentFlightId);
                mapViewController.startFlight(currentFlight.getFlightFrom(), //start samolotu 
                        currentFlight.getFlightTo());
                currentFlightId=currentFlightId+1; //kolejny samolot
                differenceTime=Duration.between( LocalTime.now(),currentFlight.getDepartureTime()).getSeconds(); //roznica  
         }
    }
edytowany 1x, ostatnio: bogdans, 2016-12-13 18:26

Pozostało 580 znaków

2014-12-29 12:16
0

Zajrzałaś do dokumentacji?

public void schedule(TimerTask task,
Date time)

Schedules the specified task for execution at the specified time. If the time is in the past, the task is scheduled for immediate execution.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-29 13:25
M
0

Czytałam, ale u mnie jest taki problem że uruchamiam najpierw jeden obiekt, potem np. po minucie drugi, po 2 minutach trzeci. Nie ma określonego interwału
I jezeli zrobie nawet coś takiego

    private void startPlane(){
 
        int sizeList=FlightList.getListflight().size();
 
        for(currentFlightId=FlightList.getNextFlight() ; currentFlightId < sizeList ;currentFlightId++){
            System.out.println("HAHHAHAHAHHA");
            currentFlight =FlightList.getListflight().get(currentFlightId);
            Date departuretimeDate= convertLocalTimetoDate(currentFlight.getDepartureTime());
            timer.schedule(task,departuretimeDate);
 
        };
 
    }
    public class MyTask extends TimerTask 
    {
         public void run() 
         {  
                Flight currentFlight =FlightList.getListflight().get(currentFlightId);
                mapViewController.startFlight(currentFlight.getFlightFrom(),
                        currentFlight.getFlightTo());
                timer.cancel();
         }
    }

to wywala mi bład Task already scheduled or cancelled

edytowany 1x, ostatnio: bogdans, 2016-12-13 18:26

Pozostało 580 znaków

2014-12-29 13:30
0

O_o, zrób kilka timerów.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0