Bonjour,
J'ai fait une petite applet qui envoie un fichier par le réseau et je voudrais pouvoir afficher dans la barre de progression l'avancement du tout.
Donc dans ma classe uploader j'ai ce fragment de code
Code :
- progressBar1.setVisible(true);
- progressBar1.setValue(0);
- progressBar1.setIndeterminate(false);
- progressBar1.setMinimum(0);
- progressBar1.setMaximum(100);
- request = new ClientHttpRequest(UPLOAD_URL);
- request.setProgressBar(progressBar1);
- //je set les paramètres
- //...
- request.send();
|
Et dans la classe ClientHttpRequest ,plus particulierement dans send j'ai :
Code :
- 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));
- System.out.println(done);
- progressBar.setValue((int)done);
- progressBar.repaint();
- }
- }
- out.flush();
- }
|
Sur la console j'ai bien une progression entre 0 et 100, hors la bar de progression apparaît (avec la valeur 100%) uniquement quand le transfert est fini.
Pouvez vous m'expliquer où je me trompe?
Merci
---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait