Originariamente inviato da andbin
Non sarebbe comunque corretto. Forse non hai ben capito la questione del threading in Swing. Esiste 1 thread, chiamato per convenzione EDT, "event dispatch thread". Questo è il thread che si occupa di gestire tutta la interfaccia utente, che ha, tra i vari compiti, quello di "disegnare" la interfaccia utente e "dispacciare" gli eventi ai listener.
Swing NON è thread-safe. Salvo pochi casi (oltretutto ben documentati), accedere alla interfaccia utente, cioè invocare qualunque cosa sui componenti è "safe" SOLO nel contesto del EDT.
Quindi da un qualunque altro thread (come quello istanziato e avviato da te) NON è safe accedere ai componenti (setForeground su quel text field). Non essere safe, detto in generale, non vuol dire che non funziona
mai o dà sempre errore. Vuol dire che se hai fortuna ti può andare bene .... ma in caso di tempistiche "sfortunate" tra i thread può non avere effetto o può creare casini (es. corruzioni di dati) o peggio.