Quote Originariamente inviata da Nunkij Visualizza il messaggio
Usando la JLabel, invece, devo aspettare la fine della ricerca per visualizzare i risultati.
Questo è un comportamento normale?
Se tutta la ricerca è fatta nel contesto di un actionPerformed() (o qualunque altro metodo di un listener), sì, questa è purtroppo la conseguenza negativa, perché sei nel contesto del Event Dispatch Thread che è il solo thread che si occupa di gestire la interfaccia utente e dispacciare gli eventi.

Se tieni tu "impegnato" il EDT con del tuo lavoro "lungo", il controllo non ritorna ovviamente in tempi brevi al framework Swing (il actionPerformed NON termina subito, infatti) e quindi la tua interfaccia diventa completamente congelata e non responsiva. Non è ovviamente un bel scenario.

Si risolve creando e gestendo un thread a parte che lavora in background e lascia libero il EDT. Ma questo implica svariate altre conoscenze e attenzioni da porre.