A dirla tutta...il mio programma... è costituito da un unico thread
Quando il main() della applicazione viene avviato, quello è un thread, è il "main" thread. La gestione della interfaccia grafica Swing e degli eventi è nel EDT (Event Dispatch Thread) che è un altro thread .... non è il main thread.