ActivarBotones thread ActivarBotones not end.
If it works when you do not start this thread, then there is something in this thread that does not terminate. Otherwise, it will pass through the EstablecerConexiones stream. Since you call .join() on this thread after it starts, the code will not act until this thread is completed. So there must be something that blocks or gets into the loop.
Run the application in debug mode and place the breakpoint in the ActivarBotones stream. Track it and see why it does not end.
For your second problem, if you start each main thread, but do not join them until all are started, they will all be executed simultaneously. Of course, this greatly simplifies the situation. Many people prefer to use executing services to manage their flows. You also need to worry about a thread-safe implementation, so you don't run into synchronization issues. Finally, if you interact with Swing components, all of this must be done in a dedicated Dispatch thread.
source share