GIF animé dans un JLabel

GIF animé dans un JLabel - Java - Programmation

Marsh Posté le 06-04-2013 à 20:08:26    

Bonsoir tout le monde !
 
Je suis en train de réaliser un jeux en JAVA pour mes études. Il s'agit d'un jeux d'échec et je voudrais que lorsque un pion est mangé le JLabel correspondant au pion affiche un gif animé (ici une explosion). Mais je souhaiterais que le gif ne dure qu'une seconde puis que le JLabel ne possède plus d'imageIcon. Voici un bout de code :
 

Code :
  1. JLabel CaseDeDepart = entry.getValue();
  2.     ImageIcon imageIcon = new ImageIcon(("explosion.gif" ));
  3.     echiquier.remove(CaseDeDepart);
  4.     CaseDeDepart.setIcon(imageIcon);
  5.     CaseDeDepart.setName("vide" );
  6.     // J'ai essayé de rajouter un wait ici mais sans succès.
  7.     CaseDeDepart.setIcon(null);
  8.     echiquier.add(CaseDeDepart);


 
J'ai essayé de rajouter un wait d'une seconde, mais sans succès cela gelais la frame. Avez-vous des idées ?

Message cité 1 fois
Message édité par kka4 le 06-04-2013 à 20:09:48
Reply

Marsh Posté le 06-04-2013 à 20:08:26   

Reply

Marsh Posté le 07-04-2013 à 19:24:03    

Regarde du côté des Timer pour la gestion du temps (http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Timer.html). Je pense que le mieux serait d'ajouter l'image GIF et au bout d'une seconde la changer en une image non animé.

Reply

Marsh Posté le 09-04-2013 à 08:05:26    

kka4 a écrit :

J'ai essayé de rajouter un wait d'une seconde, mais sans succès cela gelais la frame. Avez-vous des idées ?


 
Peut être transformer ton "CaseDeDepart" en nouvelle classe héritant de "JLabel" mais implémentant "Runnable", tu fais ton initialisation dans le constructeur et dans le "run()" tu places ton "wait()" puis "setIcon(null)", comme ça seul cet objet sera concerné par le "wait()", pas toute la Frame.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed