When you call sleep you are actually stalling the current thread (the EDT), which can then not update the GUI properly (paintComponent must be able to exit for drawing to take place). The way your...