Follow Swing best practices about segregating the UI thread from the main thread