Veja, você está implementando uma trhead e tenta invocar o método dispose dentro dela.
Ocorre que a palavra reservada this vai se referir à instância da classe Thread e não ao Component (JFrame).
Uma opção é criar um método na classe JFrame e invocar o mesmo de dentro da thread, no lugar do this.dispose();
1 curtida