Rechercher : dans
Par :

[Java]JProgressbar ne s'affichant pas

Dernière réponse le 13 jui 2007 à 10:36:56 esox_ch, le 14 mar 2007 à 22:23:47 
 Signaler ce message aux modérateurs

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 Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Langages Maltraités
Configuration: Linux Debian
Mozilla 1.8.1.2

Meilleures réponses pour « [Java]JProgressbar ne s'affichant pas » dans :
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...

1

HackTrack, le 16 mar 2007 à 09:20:26
  • +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/SwingWorke­r.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/Sw­ingWorker.java

;-)
HackTrack

Répondre à HackTrack

2

 toto, le 13 jui 2007 à 10:36:56

On écrit 'transfert !!!
fais un effort dans ton orthographe , relie toi!:

" d'avancement du transfer. Le transfère marche mais "

Répondre à toto