Il faut procéder autrement :
:arrow: la tâche "longue" doit être exécutée dans un thread séparé
:arrow: la mise à jour de l'UI doit s'effectuer dans le thread EDT
Le code doit répondre à cette exigence. Dans ton cas, le 1er code est correct ; attention néanmoins au commentaire de la javadoc :
Citation:
This method is thread safe, although most Swing methods are not. Please see
http://java.sun.com/products/jfc/swi...e/threads.html for more information.