Funzione metodo .sleep() di Thread

di il
4 risposte

Funzione metodo .sleep() di Thread

Ho un programma in cui richiamo questo metodo quattro volte consecutive per far apparire nella finestra quattro JLabel in successione a distanza di 1 secondo l'una dall'altra.
Metodo:
private void aggiungi(JLabel lab){
		
		try{
			Thread.sleep(1000);
		}catch(Exception e){}
		
		frame.getContentPane().add(lab);
		
	}
Il problema è che quando mando in esecuzione il programma non avviene ciò che voglio, ma passano quattro secondi ed in seguito appaiono i quattro JLabel tutti insieme.
Mentre ho provato a fare la stessa cosa con delle semplici stampe e queste avvengono in successione come vorrei io.
Qualcuno mi sa spiegare perchè con i JLabel succede questo?

4 Risposte

  • Re: Funzione metodo .sleep() di Thread

    Si tratta di un applet ?

    nel caso credo opportuno usare altrimi strumenti di delay, magari interni alla applet.

    n
  • Re: Funzione metodo .sleep() di Thread

    No, non è un applet
  • Re: Funzione metodo .sleep() di Thread

    È evidente una serializzazione da qualche parte.

    un problema analogo lo ho risolto mettendo dei break (o println) sui vari punti fino a che ho beccato il punto dove serializzava.

    ciao n
  • Re: Funzione metodo .sleep() di Thread

    È un "problema" della gui.

    essendo l'EDT in un unico thread, quando fai gli sleep blocchi l'editor, e si riattiva alla "fine" diciamo così.

    dovresti creare un thread parallelo per la gestione di queste cose, un pò come succede per le progressbar
Devi accedere o registrarti per scrivere nel forum
4 risposte