Ho creato un programmino che effettua l'FTP comprensivo di stato di avanzamento del processo tramite componente JProgressBar.
La progress bar l'ho inserita all'interno di un ciclo while che invia byte per byte il file.
Il problema è l'effetto sfarfallio che si ottiene quando viene ridisegnata ogni volta la progress bar.
while (true) {
c = is.read(); // LEGGO DAL FILE BYTE PER BYTE
if (c < 0)
break;
os.write(c);
numByte++;
percentualeStatus = (int)Math.round(((numByte) / byteTotal) * 100);
if (percentualeStatus != percentualeStatusOld) {
jProgressBarFTP.setValue(percentualeStatus); // SETTO IL VALORE IN PERCENTUALE
percentualeStatusOld = percentualeStatus;
jProgressBarFTP.paint(jProgressBarFTP.getGraphics( )); //RIDISEGNO IL COMPONENTE
}
}
Come posso togliere lo sfarfallio? Per mezzo di un thread? Ma in corrispondenza solo del ridisegnamento del componente?
Aiuto, grazie.