Comment faire des formes “blink” ou changer les couleurs en Java?

Je suis en train d'apprendre comment dessiner une forme, et être en mesure de a) dessiner, de "geler" le processus, de dessiner dans la couleur de l'arrière-plan, puis re-dessiner dans la couleur d'origine et b) dessiner une forme et un changement de sa couleur. Tout ce que j'ai jusqu'à présent est (pour clignotant):

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Carlight extends JPanel{
    Thread th=new Thread();
    public void paintComponent (Graphics g){
        super.paintComponents(g);
        g.setColor(Color.yellow);
        g.fillOval(25, 25, 10, 10);
        try{
            th.sleep(10);
        }catch(InterruptedException e){}
        repaint();
        g.setColor(Color.yellow);
        g.fillOval(25, 25, 10, 10);
        try{
            th.sleep(10);
        }catch(InterruptedException e){}
        repaint();
        g.setColor(Color.yellow);
        g.fillOval(25, 25, 10, 10);
    }
    public Carlight(){
        JFrame frame=new JFrame();
        frame.setTitle("Carlights");
        frame.add(this);
        frame.setBackground(Color.black);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(100,150);
        frame.setVisible(true);
    }
    public static void main(String[] args){
        new Carlight();
    }
}

Comment puis-je rendre ce code fonctionne et comment puis-je obtenir une forme à changer de couleur?

InformationsquelleAutor tussya | 2011-08-29