ActionListener und Thread.sleep

Ich habe einen JButton, der, sobald ich darauf klicke, nach einigen Sekunden einige Farben ändern soll, zum Beispiel von Blau -> 1 Sekunde -> Rot -> 1 Sekunde -> Gelb. Mein Problem ist, dass, sobald ich die Thread.sleep-Funktion in ActionListener benutze und mein Programm teste, es für die 2 Sekunden einfriert und mich direkt gelb gibt. Wie kann ich das beheben? Danke vielmals