The code below behaves very strangely. The GUI thread is blocked, even though "work" is a totally different thread. If I put a print statement in mouseClicked, the print executes, work keeps running.