Salve a tutti, ho realizzato un piccolo programma che simula un orologio, ora vorrei pero' animarlo, di modo che legga l'ora dal sistema e ridisegni ogni secondo il mio orologio.

Ho cosi' creato la classe RandomAction che riporto di seguito:

codice:
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.logging.Level;
import java.util.logging.Logger;

public class RandomAction extends Thread implements Runnable {
    AutoPanel autoPanel;
    boolean pause = true;
    int time = 1;                                       //1 secondo
    int hours;
    int minutes;
    int seconds;
    
    public RandomAction(AutoPanel autopanel) {
        this.autoPanel = autoPanel;
    }
    
    @Override
    public void run() {
        while(true) {
            
                try {
                    if(!pause) {
                         this.sleep(time);
                    
                         System.out.println("sono dentro");

                         Calendar c = new GregorianCalendar();
                    
                         this.hours = c.get(Calendar.HOUR_OF_DAY);
                         this.minutes = c.get(Calendar.MINUTE);
                         this.seconds = c.get(Calendar.SECOND);
                    
                         this.autoPanel.t.hours = this.hours;
                         this.autoPanel.t.minutes = this.minutes;
                         this.autoPanel.t.seconds = this.seconds;
                    
                         this.autoPanel.drwPanel.repaint();
                    }
                } catch (InterruptedException ex) {
                    Logger.getLogger(RandomAction.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }
Il problema e' che quando modifico il valore di pause, non succede nulla, non viene disegnato nulla e non si muove nulla.