Java Swing is not thread safe, and here are some related resources.
- Swing’s threading policy from package description
- Java SE Desktop Articles and tutorial Creating GUI
- SwingUtilities methods invokeAndWait and invokeLater in an example at Java Revisited blog
- Building thread safe GUIs at Java Developers Journal resource CD vol 6 issue 5 – swing
- SwingUtilities.invokeAndWait with return value using Callable