Allora come avevo intuito ti mancano un pò le basi....
Prima di tutto questo link contiene la documentazione sull'oggetto Thread.
Per quanto riguarda i tuoi dubbi:
Il metodo run di un thread non va mai richiamato direttamente, in quanto esso e un metodo sincrono (cioè il chiamante attende finché tale metodo non si conclude...) e quindi l'interfaccia grafica ti rimane bloccata.Hai implementato un nuovo metodo run() però non lo chiami mai (l'hai commentato).
Il metodo start è implementato nella Classe Thread che tu estendi per creare e definire un Thread. Esso non fà altro che richiamare il metodo run() del Thread, ma con l'unica e sostanziale differenza che tale metodo è asincrono cioè non aspetta che il metodo run venga eseguito ma ritorna subito il controllo al chiamante e "dopo" chiama il metodo Run.Poi hai aggiunto la chiamata a start() che non è stato implementato da nessuna parte.
Ciao