No!! Lo dico ancora una volta: invokeLater() serve per richiedere di far eseguire "qualcosa" (il run() di un Runnable) nel contesto del EDT. Il EDT è il thread che si occupa principalmente di tutto il disegno della interfaccia utente e del dispacciamento degli eventi. E non va mai tenuto impegnato con del "tuo" codice per troppo tempo pena ... "congelamento" di tutta la interfaccia!Originariamente inviato da Rubox
... nel thread dove credo la GUI, se ho delle operazioni lunghe da fare, o anche non lunghe, le inserisco in uun Runnable, richiamato da invokelater?
Non centra tanto "la classe" in sé ... centra il "flusso" di esecuzione. Se devi fare operazioni "lunghe" devi farle in un thread di esecuzione separato e questo generalmente consiste nell'avere un java.lang.Thread e farlo partire (start()). Puoi:Originariamente inviato da Rubox
Oppure le metto in una classe opportunamente costruita? Così da non tenere occupato troppo il thread principale dell'EDT?
1) Estendere Thread e fare il tuo "lavoro" nel run()
oppure
2) Implementare la interfaccia Runnable (in una qualunque tua classe) e fare il tuo "lavoro" nel run(). Il Runnable lo passi al costruttore di Thread

Rispondi quotando