Per le solite questioni dei thread e del EDT (mi sa che dovresti approfondirle un pochino).Originariamente inviato da Dreamer89
mi si blocca tutto e non riesco più a chiudere... perchè fa così?
Quando viene invocato il actionPerformed(), si è nel contesto del EDT. Ma il metodo che invochi (runServer() ) è "bloccante" ovvero sta lì ad aspettare connessioni. Vuol dire che stai tenendo impegnato tu il EDT e non va affatto bene. Devi cercare sempre di impegnare il EDT il meno possibile. Se non ritorni dall'evento, il framework non ha possibilità di dispacciare altri eventi, di disegnare/aggiornare la interfaccia utente ecc.... Cioè la tua interfaccia grafica è "congelata".
E sempre parlando dei thread, quando il metodo init() della applet viene invocato, non si è nel contesto del EDT. Quindi anche qui dovresti usare invokeLater per eseguire la inizializzazione della tua interfaccia nel contesto del EDT.