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

Java Discussion :

Temps d'attente Timer()


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 46
    Par défaut Temps d'attente Timer()
    Bonjour à tous,

    J'ai un petit problème suite à l'utilisation d'un Timer, je m'explique :

    J'ai un JButton lié à un ActionListener.

    Ce JButton utilise une méthode pour afficher une image à la place d'un texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    protected static ImageIcon createImageIcon(String path) {
    	URL imgURL = MaClasse.class.getResource(path);
    	if (imgURL != null) {
    		return new ImageIcon(imgURL);
    	} else {
    		System.err.println("Impossible de trouver l'image");
    		return null;
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonButton = new JButton(createImageIcon("image_originale.jpg"));
    Lorsque je clique sur mon JButton, j'actionne l'action qui est de modifier pour un certain temps l'image qu'affiche mon JButton puis de réafficher l'image d'origine (une sorte de clignotement) via cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void changeIcon(JButton bouton) {
    	bouton.setIcon(createImageIcon("image_modifiee.jpg"));
    	timer = new Timer(300, new ActionListener() {
    		public void actionPerformed(ActionEvent evt) {
    			bouton.setIcon(createImageIcon("image_original.png"));
    		}
    	});
    	timer.start();
    }
    Mon problème étant que au plus j'appui sur mon JButton au plus le temps d'attente de mon Timer() diminue (enfin c'est l'impression que j'en ai), car la 1ère fois j'ai bien un temps de 300ms avant que mon bouton ne réaffiche l'image originale mais ensuite ce laps de temps devient presque inperceptible (on ne voit plus l'image modifiée).

    Quelqu'un saurait-il pourquoi j'ai ce problème ?

    Merci d'avance pour vos réponses !

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    Un premier truc à essayer serait à mon avis de conserver une référence sur les deux images que tu utilises plutôt que de les relire à chaque fois parce qu'en utilisant des ImageIcon, ça charge le MediaTracker et ça n'est peut être pas l'idéal (bien que je n'ai pas détaillé son fonctionnement interne).

    Dis-moi si ça aide...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 46
    Par défaut
    Salut Yomhgui, excuse moi de ne pas avoir répondu, j'ai dû m'absenter et je viens juste de rentrer.

    Quand tu dis d'utiliser une référence sur deux, je ne vois pas trop ce que ça signifie. Peux-tu essayer d'expliquer différemment ?

    Merci de ton aide !

    Edit : C'est bon, j'ai trouvé il suffisait de déclarer mon Timer en final dans ma méthode et de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    timer.setRepeats(false);
    et c'est réglé !

    Merci encore de m'avoir aidé !

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

Discussions similaires

  1. Splashscreen / Temps d'attente ?
    Par Bibipulse dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 10/05/2006, 12h11
  2. [VB6] Le temps d'un Timer ....
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 28/04/2006, 09h38
  3. [Info-bulles]Comment modifier le temps d'attente?
    Par minus dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 22/03/2006, 13h39
  4. temp restant du timer
    Par darkmalak01 dans le forum Langage
    Réponses: 5
    Dernier message: 11/10/2005, 02h21
  5. [VB]temps d'attente entre 2 instructions
    Par XtoX dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/09/2005, 09h38

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