The usual problem is, that you also need proper GUI refreshes when updating the progress bar's value. I did async loading with progress bar some time ago, where I used exactly that tutorial.
Note, that with compressed audio files, the usage of byte counters might not be accurate, without doing complete decompression initially, what might not be what you want.
It is essential of course, that you set up the progressbar's value and min & max appropriately using the constructor and/or setMaximum(), setMinimum() and setValue(), before starting to play, e.g.
progressBar.setMinimum(0);
progressBar.setMaximum(totalTime);
progressBar.setValue(0);
but not
progressBar.setValue(elapsedTime);
from your worker thread, use the PropertyChangeListener
interface and setProgress() of SwingWorker
from within the worker instance as in following example.
Just adapt the code to your needs:
http://docs.oracle.com/javase/tutorial/uiswing/examples/components/ProgressBarDemoProject/src/components/ProgressBarDemo.java