For anyone seeing your post:
UI updates from non-GUI threads must use EventQueue.invokeLater (or SwingUtilities.invokeLater)