Originariamente inviato da Gil1688
Ad andbin dico che nel metodo run ridefinito NON ho scritto nulla del tipo

variabile.setText ("blabla");
Io ho parlato di "direttamente" (mi scuso se è stato equivocato) ma il termine era riferito non tanto al fatto che il setText fosse materialmente dentro al while nel run ma che il setText fosse eseguito direttamente all'interno del flusso del thread!

Originariamente inviato da Gil1688
thread figlio vengono chiamati dei metodi che me la aggiornano (in realtà è uno solamente).
Il punto è questo e lo ripeto ancora una volta: se nel "flusso" di esecuzione del thread secondario che tu hai creato, fai direttamente nel run o indirettamente in qualunque metodo invocato dal run dei: setText, removeAll, add (es. su contenitori), setLayout, ecc... e qualunque altro metodo tipico della interfaccia utente, questo è, lo ripeto ancora, inappropriato.

codice:
public void run() {
    while (true) {
        ....
        unaLabel.setText(....);    // inappropriato
        unPannello.add(altraLabel);    // inappropriato
        ....
        pippo();
        ....
    }
}

private void pippo() {
    unaLabel.setText(....);    // inappropriato (è invocato nel flusso del thread secondario)
    unPannello.add(altraLabel);    // inappropriato (idem)
}