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

Composants Java Discussion :

Faire défiler une JProgressBar plusieurs fois


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut Faire défiler une JProgressBar plusieurs fois
    Bonjour à tous,

    J'expose mon problème, je souhaiterai faire défiler une JProgressBar de 0 à 100 plusieurs fois à la suite.
    Ma JProgressBar s'apelle barreProgression, et je boucle sur un nombre de seconde factice (10).

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while (i < seconde)
        {
            barreProgression.setValue(0);
     
            for (j = 0; j <= 100; j++) // On fait une boucle pour que la JProgressBar "avance"
            {
                barreProgression.setValue(j);
            }
     
            i++;
        }
    Le problème que je relève, c'est qu'à l'éxecution, la JProgressBar se remplit une fois à 100 et plus rien, le reste de mon programme s'execute et voilà...
    Une idée ? J'ai trouvé nulle part un sujet en parlant... Je me demande si il est possible de faire reculer une JProgressBar maintenant !

    Merci d'avance

  2. #2
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,

    est-ce le comprtement de la méthode setIndeterminate(true) ne te conviendrait pas ??

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut
    Humm oui ca va c'est nettement mieux que ce que j'avais avant ! Merci beaucoup de la piste du setIndeterminate herch !

    Alors voilà ce que j'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    barreProgression.setIndeterminate(true);
     
    try
    {
         Thread.sleep(1000);
    }
    catch (InterruptedException e)
    {
    }
     
    barreProgression.setIndeterminate(false);
    barreProgression.setValue(100);
    La tempo de 1 seconde fonctionne bien, mais durant l'instant de pause, la JProgressBar n'est pas en mouvement, au réveil du Thread elle passe bien à la valeur 100.

    Comment faire pour avoir cette effet d'aller retour sur une periode donnée ? A terme j'utiliserai surement 10 seconde...

  4. #4
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    une solution serait d'utiliser un Timer avec un intervalle de 10 secondes, et dans l'actionPerformed du timer, tu changes la valeur du progressbar et tu stoppes le timer

    par exp

    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
     
    class UneClass implements ActionListener {
        JProgressBar progress;
        Timer timer;
        //...................
        UneClass() {
            //...................
            progress = new JProgressBar();
            progress.setIndeterminate(true);
            //...................
            timer = new Timer(10000, this);
            timer.start();
            //...................
        }
        //...................
        public void actionPerformed(ActionEvent ae) {
            progress.setIndeterminate(false);
            progress.setValue(100);
            timer.stop();
        }
    }
    reste à savoir si c'est la meilleure solution

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut
    Voilà ce que j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int tempo = 10000;
    barreProgression.setIndeterminate(true);
     
    timer = new Timer();
     
        timer.schedule(new TimerTask()
        {
            public void run()
            {
                    barreProgression.setIndeterminate(false);
                    barreProgression.setValue(100);
            }
        }, tempo);
    Ca marche bien merci ! Résolu

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Attention à bien modifier les composants graphiques comme ta progressBar dans l'EDT à l'aide d'un invokeLater.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut
    Euh...je comprends pas, le invokeLater va faire quoi concrètement ?
    Je saisi pas son utilité, et j'aimerai vraiment maitriser le graphique en Java mais je nage un peux je dois avouer...
    A quoi va me servir le invokeLater et qu'est ce que je peux risquer si je ne l'utilise pas ?

    Merci beaucoup, j'en profite pour demander tout ce que je peux

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

Discussions similaires

  1. [Débutant] Faire appel à un programme plusieurs fois dans une boucle for
    Par hibouchka dans le forum MATLAB
    Réponses: 9
    Dernier message: 01/03/2011, 17h09
  2. Faire défiler une frame avec le scroll d'une autre frame
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/08/2007, 14h39
  3. Faire défiler une zône de liste en vba
    Par helas dans le forum Access
    Réponses: 7
    Dernier message: 19/08/2006, 21h47
  4. Comment faire défiler une image dans un DBImage
    Par kolac dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/04/2006, 13h45
  5. [Servlet] Comment utilisé une servlet plusieurs fois ?
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 03/06/2004, 14h49

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