As far as I know, all repainting is done by the AWT-Event-Queue.
However, you can't join to this thread as it will never finish.
Any updates you do to to GUI should be done in the event thread
by using SwingUtilities.invokeLater or
SwingUtilities.invokeAndWait.
For example, in the thread that draws onto the panel:
SwingUtilities.invokeLater( new Runnable() {
public void run() {
// do your drawing stuff here
}
});