JavaFX uruchamianie watku o określonej godzinie

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.

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 	
	     }
	}
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.

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

0

O_o, zrób kilka timerów.

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