IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDT/SwingWorker Java Discussion :

Rafraichisement de ProgressBar


Sujet :

EDT/SwingWorker Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Par défaut Rafraichisement de ProgressBar
    Bonjour les amis,
    Je travail sur une application java (java desktop application), sous netbeans6.8 et jdk1.6.0_10, et j'ai un long traitement au sein du programme, donc j'utilise pour cela un progressbar pour signaler la progression du traitement. Le problem c'est que la progressbar ne se remplie pas durant le traitement, mais après sa fin. En plus, quand je relance à nouveau le traitement, la progressbar reste remplie meme si normalement je la remet à zéro au début du traitement.
    Adez moi Svp
    Merci d'avance!

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    salut
    le remplissage de ton progressbar doit être dans un thread
    un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Thread monThread= new Thread()
            {
                int DVP = 0;
                public void run()
                {
                    while(DVP<=100)
                    {
                           progressBar.setValue(DVP);
                           sleep(100);
                           DVP++;
                    } 
                }         
            };

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Par défaut
    Meci slim_java pour votre réponse. Pouriez-vous m'explique un peu plus?
    Oû je doit déclarer ce thread par rapport à mon programme, et comment je peux appeler ce thread la?
    merci d'avance.

  4. #4
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Citation Envoyé par le_misterioso Voir le message
    Oû je doit déclarer ce thread par rapport à mon programme
    ce thread et un timer pour chnager la valeur d'un progressBar.
    tu peux ns donner une idée sur le traitement que tu fais?

    Citation Envoyé par le_misterioso Voir le message
    appeler ce thread la?
    monthread.start();

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Par défaut
    ma portion de code se résume comme suit:

    je fais le charement d'un fichier excel ligne par ligne, pour le sauvegarder dans la bae de données. Vu que le fichier excel comporte plusieurs lignes voir des milliers de lignes, le traitement est un peur long, c'est pour cela que je veux utiliser un progressbar.
    voici mon code rétréci pour bien comprendre ma situation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    progressBar.setValue(0);
     try {
                     String s1;
                     String s2;
                     int nbreLignes=0;
     
                     //Declaration du fichier excel
                      inp = new FileInputStream("c:\\GERAP\\Fichiers_Entree\\r.xls");
                      wb = new HSSFWorkbook(new POIFSFileSystem(inp));
                      Sheet sheet = wb.getSheetAt(0);
     
    	    //Connexion a la base de donnees
                       ..................
     
                     //Traitement
    	   while(i<=sheet.getLastRowNum())
    	      {					
                            Row ligne=sheet.getRow(i);
                            Cell cellule=ligne.getCell(0);
                            s1= ligne.getCell(0).getStringCellValue();    // matricule
                            s2= ligne.getCell(1).getStringCellValue();}    // rubrique
     
                            //Sauvegarde de s1 et s2 dans la base de données
                            ..........
                            ..........
     
                            progressBar.setValue(nbreLignes);
                            nbreLignes++;
                        }
    }
    catch(Exception e)
    {
    }

    J'espère que c'est bien expliqué, j'ai pas voulu encombré le code, c'est pourcela que j'ai mis des pointillés remplacant les code explicités par les commentaires en dessus.

    Merci d'avance mon ami

  6. #6
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    tu peux voir si ca marche avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Thread monThread= new Thread()
        {
            public void run()
            {
     
                while(i<=sheet.getLastRowNum())
                {
                    Row ligne=sheet.getRow(i);
                    Cell cellule=ligne.getCell(0);
                    s1= ligne.getCell(0).getStringCellValue(); // matricule
                    s2= ligne.getCell(1).getStringCellValue();} // rubrique
     
                   // Sauvegarde de s1 et s2 dans la base de données
                   // ..........
                   // ..........
     
                progressBar.setValue(nbreLignes);
                nbreLignes++;
            }
         }
    monThread.start();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC] afficher une ProgressBar dans une barre d'etat
    Par guillaume21 dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2007, 12h16
  2. ProgressBar style XP
    Par Rodrigue dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/11/2003, 10h36
  3. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 12h07
  4. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 19h03
  5. Couleur de ProgressBar
    Par benj63 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 18h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo