Ciao a tutti ho il seguente problema ho implementato un'interfaccia grafica, a cui è stato aggiungo un timer all'interno del metodo costruttore di MyFrame.

io vorrei che una volta visualizzata la finestra, il timer continui a generare un numero casuale da 1 a 3, e a seconda del valore entri nello switch e aggiunga del testo nellaTextAreaRight.
facendo girare il codice, entra una volta nel timer, genera un numero, stampa il messaggio e BASTA.
il timer non funziona più, è come se il timer non funziona è li morto.

qualcuno per piacere mi può dare una dritta?
grazie a tutti

il codice principale è il seguente;

la classe MyFrame viene avviata da un altro oggetto.

codice:
public class MyFrame extends JFrame{
   private JTextArea textAreaRight;
    Timer t = new Timer();

   public MyFrame(){
   ......
   .....
  
   t.schedule(new  SimulazioneTask(vG, this), 4000);
   }
......
......
}


class SimulazioneTask extends java.util.TimerTask{
	private VariabiliGlobali vG;
	private MyFrame win;
	public SimulazioneTask(VariabiliGlobali vG, MyFrame win){
		this.vG = vG;
		this.win = win;
	}
	public void run(){
		
		boolean valore=false;
		int numeroCasuale= (int)(3*Math.random())+1;
		
		switch(numeroCasuale){
			case 1:
				valore = this.win.getDeliveryAttend("Express");
				System.out.println("E' possibile fare una consegna espressa ";
				this.win.getTextAreaRight().append("hhhh express");
				break;
			case 2:
				valore = this.win.getDeliveryAttend("Normale");
				System.out.println("e' possibile fare una consegna normale " + valore);
				this.win.getTextAreaRight().append("hhhh normale" );
				break;
			case 3:
				valore = this.win.getDeliveryAttend("Large");
				System.out.println("e' possibile fare una consegna large " + valore);
				this.win.getTextAreaRight().append("hhhh large");
				break;
		}
		System.out.println("Hello World");
	}
}