Swing is single threaded, bog down that single thread with sleep or pause and you bog down that thread and lock up the gui. Use a swing timer, which seems more appropriately suited for your needs