Cita: while(miAlgoritmo.isAlive()){}
Ahi tienes a tu programa esperando a que acabe el thread, sin dejarle hacer nada mas, asi que no puede pintar, ni responder a eventos ni nada.
Lo habitual es dejar seguir al programa y que el Thread al acabar notifique al programa principal a través de un metodo, y entonces actualizar la interfaz con los resultados. Si no, bloqueas tu programa, entero, esperando por el thread.
S!