Your problem could be due your tying up the EDT, the Event Dispatch
Thread, and if so, you'll have to take care to keep the EDT free of busy work.
What I want to know is what actions occur when the button is pressed? Do these actions take a bit of time or strain the processor? If so, do you need to call these actions within a background worker thread?