En fait quand tu fermes ta fenêtre (avec dispose()) et qu'aucun thread non-démon n'est vivant, ça ferme tout seul...
Mais bon, si tu autorise des plug-ins pour ton appli par exemple, et que qqn fait un plug-in qui laisse un thread non-démon vivant, et bien ton appli ne quittera pas... Dans ce cas, ce que je fais, je met un timer (démon bien sûr) qui quitte l'appli si elle ne se ferme pas toute seule...