Ripeto, in caso il post si è perso tra le mille linee di codice

1. Perchè inizializi gui con new LudecaLogInServerGUI(); se poi la setti nel costruttore?

2. ArrayList<Operatore> listaOperatori: Ogni therad avrà una sua lista. Se due client fanno il login ci saranno due thread con ognuno una listaOperatori di dimensione 1, che poi vai a scrivere nella Jtable

PS: Se non ha capito male, la tua intenzione è quella che un client si connette al server, fa il login è poi la connessione si chiude,giusto ? non viene mantenuta la connessione fino a chiusura del client


PS Non vorrei dire una stupidaggine, ma se fai

codice:
while(true){ 
    try
        {
             ...
	     serverThread.start();
	     serverThread.join();
	     socket.close();
	             
   	 }catch{...}
}
A cosa serve creare i thread, se poi con join blocchi tutto in attesa che il thread termini?
Il join dovresti farlo appena prima che il main thread termini, in modo da assicurarti che tutti i thread figli ancora attivi terminino correttamente rilasciando le eventuali risorse