Perdonate il doppio post, ho risolto il mio quesito e volevo scrivere la soluzione, aiutando magari chi in futuro ne avrà bisogno. Mi è bastata un minimo di teoria dei Thread e ho risolto il problema.
Purtroppo la classe Swing è NOT THREAD SAFE, perciò non posso utilizzare il reference in esecuzione in automatico. Ma è presto risolto il problema, è bastato implementare la classe Runnable e ridefinire il metodo run nel seguente modo:
Così facendo l'EDT non viene proprio toccato e porta al termine al sua esecuzione senza problemi; lasciando al povero figlio il compito di lavorare per tutta la sua esistenza all'aggiornamento di App, senza mai morire.codice:public class App extends Finestra implements Runnable { public App { Thread figlio = new Thread (this, "Thread figlio"); //COSTRUISCO LO JSCROLLPANE E IL JPANEL //METTO UNA JLABEL IN OGNI RIGA DEL GRIDLAYOUT DEL JPANEL //CARICO IL CONTENUTO DELLE JLABEL DA UN DB figlio.start (); } public void run () { while (true) { Thread.sleep (15000); //OPERAZIONI DI AGGIORNAMENTO JLABEL } } }
Un pò brutale, ma semplice, e soprattutto FUNZIONANTE
Un ringraziamento sentito a andbin che mi ha messo sulla giusta strada, facendomi diffidare del EDT e puntando su suo figlio.


Rispondi quotando