Bonjour,
Je developpe en ce moment une petite applet permettant d'envoyer HTTP des fichiers et je desire pouvoir afficher en temps réel le pourcentage d'avancement du transfer. Le transfère marche mais la barre de progression ne s'affiche que quand le transfère est terminé, et le fait avec la valeur de 100%.
Voilà le code :
Définition :
progressBar.setVisible(true);
progressBar.setValue(0);
progressBar.setIndeterminate(false);
progressBar.setMinimum(0);
progressBar.setMaximum(100);
progressBar.paint(progressBar.getGraphics());
La methode qui est appelée pour l'envoie du fichier :
private void pipe(InputStream in, OutputStream out) throws IOException {
byte[] buf = new byte[10000];
int nread;
synchronized (in) {
double done;
double delta;
while ((nread = in.read(buf, 0, buf.length)) >= 0) {
out.write(buf, 0, nread);
transfered += nread;
delta = (double) (getFileLength() - getTransfered()) / getFileLength();
done = (100 * (1 - delta));
if(done%5 != 0) continue;
progressBar.setValue((int) done);
progressBar.getTopLevelAncestor().paint(progressBar.getGraphics());
}
}
out.flush();
}
Est-ce que qqn voit la raison?
Merci

