Le barre di avanzamento, al contrario di quello che gli utenti normali pensano, non visualizzano un avanzamento infinitesimalmente corretto. Esse, infatti, si usano in questo modo:
1) Si esegue una parte del lavoro (quantificabile numericamente)
2) Si aggiorna la barra di avanzamento di quella parte di lavoro svolto.
3) Si ritorna al punto 1
Questo significa che la barra di avanzamento non si aggiorna "in contemporanea" al lavoro svolto, ma viene continuamente aggiornata ogni volta che il lavoro è stato svolto.
Esempio: se devi trasferire un file e ti serve una barra di avanzamento (JProgressBar) che visualizza la percentuale di file trasferita, dovresti agire nel seguente modo:
1) Calcolare la dimensione totale del file da trasferire e settare il relativo valore massimo nella JProgressBar
2) Trasferire un "pacchetto" di dati di dimensione prefissata (al massimo l'ultimo di questi pacchetti è di dimensione inferiore)
3) Aggiornare la JProgressBar al valore accumulato aggiungendo la dimensione del pacchetto appena trasferito.
La percentuale viene automaticamente fornita dalla JProgressBar attraverso il metodo getPercentComplete() e può essere impostato il relativo testo nella barra di avanzamento attraverso il metodo setString().
Ciao.![]()