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; } }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 MonButton = new JButton(createImageIcon("image_originale.jpg"));
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).
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(); }
Quelqu'un saurait-il pourquoi j'ai ce problème ?
Merci d'avance pour vos réponses !
Partager