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.