Hola,
El problema es que estás creando un ciclo infinito que hace esperar a tu aplicación 20 segundos secuencialmente, por lo tanto la aplicación no responderá más (está bloqueada, trabada),
Código:
...
while(true){
try {
rando=new Random();
int x = rando.nextInt(5);
int pc=pcs[x];
Move move=new Move(red,pc,rando.nextBoolean());
move.start();
Thread.sleep(20000);
...
Eso se traduce en:
Código:
repita (infinitamente) {
...
Espere 20 segundos;
}
Ese hilo, el hilo que está ejecutando los eventos, y tiene que esperar 20 segundos secuencialmente para siempre, es el hilo principal (event dispatcher thread).
Saludos,