Well, this is a common problem. The code that updates the progress bar should be executed by a separate thread other than the event dispatching thread (EDT). It looks like you haven't used any thread...