come per ogni oggetto devi tenerti da qualche parte un riferimento alla variabile.
In dettaglio se tu fai dentro il run
quella è una variabile locale, non hai idea di frame all'esterno.codice:@Override public void run() { // TODO Auto-generated method stub { PrincipalFrame frame = new PrincipalFrame(); } }
Cambia lo scope della variabile e su quella poi agisci.
Con frame, non so se ti è già stato detto, occhio ai thread: aggiornamenti grafici (quelli che pertengono ad una JFrame) devono essere fatti dall'EDT!