|
|
|
|
esox_ch, le mercredi 14 mars 2007 à 22:23:47
progressBar.setVisible(true);
progressBar.setValue(0);
progressBar.setIndeterminate(false);
progressBar.setMinimum(0);
progressBar.setMaximum(100);
progressBar.paint(progressBar.getGraphics());
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();
}
Configuration: Linux Debian Mozilla 1.8.1.2
Salut!
C'est parceque ta JProgressBar n'a pas le temps de se raffraîchir entre deux modifications. Tu dois utiliser la classe javax.swing.SwingWorker qui n'est pas livrée avec le JDK5 (mais une version repensée de celle-ci est livrée avec le JDK 6) mais que tu peux aller télécharger sur le site de Sun. API de la classe (JDK6): http://java.sun.com/javase/6/docs/api/javax/swing/SwingWorker.html Tutoriel et exemple (JDK6): http://rom.developpez.com/java-swingworker/ Téléchargement du code source de SwingWorker: http://java.sun.com/products/jfc/tsc/articles/threads/src/SwingWorker.java ;-) HackTrack |
on écrit 'transfert !!!
fais un effort dans ton orthographe , relie toi!: " d'avancement du transfer. Le transfère marche mais " |