It happens because the song-playing happens in the same thread as the GUI, or more specifically the EDT. Therefore, the GUI does not response, when the song is playing. To fix this, do something like this:
new Thread(){
run(){
//Your play code
}
}.start();
This will play your stuff in a seperate Thread. However, you have to regard that since the GUI is responsive, you can start songs while songs are still playing.
For more information, see this