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

AWT/Swing Java Discussion :

Déffilement des images chaque 10 secondes dans un JLabel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 201
    Par défaut Déffilement des images chaque 10 secondes dans un JLabel
    Salut, c'est encore moi...
    Je veux changer l'icon (image) d'un JLabel automatiquement chaque 10 secondes, j'ai essayé avec ce modeste code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                 l.setIcon(Ressource.loadIcon("/VUE/chi.png")); 
     
                    try {
                        Thread.sleep(10000);
                    } catch (InterruptedException ex) {
                        Logger.getLogger(Systeme.class.getName()).log(Level.SEVERE, null, ex);
                    }
     
             l.setIcon(Ressource.loadIcon("/VUE/Dech.png"));
        }
    quand je run, l'app bloque pendant à peut prés 10 seconde, et effectivement la deuxième image s'affiche!!

    que faire?!

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ne pas faire un Thread.sleep dans le thread de l'EDT. Regarde la FAQ du forum, il y a différents exemples de mémoire sur comment faire un traitement lourd hors de l'Edt.

    Dans ton cas le plus simple serait d'utiliser un timer.

  3. #3
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 201
    Par défaut
    j'ai pensé à laisser une question ici, quand je n'ai rien trouvé je n'arrive pas à trouver quelque chose de simple, que je px comprendre

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Pour le blocage, comme je l'ai dit, pas de traitement long dans l'EDT
    http://java.developpez.com/faq/gui/?...fige-que-faire


    Pour faire quelque chose toutes les 10 secondes, un timer est approprié

    http://java.developpez.com/faq/gui?p...mer-facilement

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Timer t = new  Timer (60*1000, new ActionListener(){
        public void actionPerformed(ActionEvent e){
            afficherImageSuivante();
        }
    });
    t.start();
    ou avec les lambdas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Timer t = new  Timer (60*1000, (e) -> afficherImageSuivante());
    t.start();
    ou encore avec les références de méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Timer t = new  Timer (60*1000,this::afficherImageSuivante);
    t.start();

Discussions similaires

  1. Faire défiler des images toutes les secondes
    Par babylone_59 dans le forum Windows Forms
    Réponses: 17
    Dernier message: 16/11/2014, 04h42
  2. Réponses: 6
    Dernier message: 16/11/2009, 08h42
  3. Réponses: 1
    Dernier message: 13/10/2009, 10h47
  4. Centrer des images et du texte dans un tableau
    Par hstlaurent dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/08/2005, 16h34

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