come per ogni oggetto devi tenerti da qualche parte un riferimento alla variabile.
In dettaglio se tu fai dentro il run

codice:
@Override
			public void run() {
				// TODO Auto-generated method stub
				{
					PrincipalFrame frame = new PrincipalFrame();
                                }
			}
quella è una variabile locale, non hai idea di frame all'esterno.
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!