Originariamente inviato da iacoposk8
però se lo metto in un applet oltre alla riga Thread.sleep(3000); devo aggiungere l'eccezione e se scrivo public void paint(Graphics g)throws Exception
Primo: il metodo di Component di cui fare l'override è:

public void paint(Graphics)

senza eccezioni dichiarate. E secondo le regole (che dovresti sapere, almeno queste) il metodo che fa l'override (cioè il tuo) NON può dichiarare eccezioni checked in più o più "ampie" rispetto al metodo di cui fa l'override.

Secondo: NON si devono fare sleep() in un paint(). Vuoi disegnare qualcosa che cambia in modo "temporizzato"? Allora devi mantenere uno "stato" (variabili di istanza) che indica cosa disegnare di volta in volta, poi usi un timer (di norma meglio javax.swing.Timer). Ad ogni evento del timer, aggiorni lo stato per indicare cosa disegnare e chiedi un repaint() del componente.