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 :

rejouer un gif anime


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué Avatar de Alt157
    Profil pro
    Inscrit en
    Février 2009
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 143
    Points : 146
    Points
    146
    Par défaut rejouer un gif anime
    Bonjour a tous,

    Dans le cadre de mes études je dois me mettre au Java donc j ai développé une petite application ( démineur ) donc lorsque l'on clique une case elle peut avoir plusieurs états ( flag, retourné,.. ) et lorsque l'on clique sur une case minée je fais jouer un gif animé qui montre une explosion dans toutes les cases qui étaient minées ( et qui n'avaient pas de flag ) et le gif représente une case sombre a la fin de l explosion. C est un gif qui ne tourne pas a l infini parce que cela ferait con que la clase explose a longueur de temps.

    J affiche cette image en faisant simplement dans ma classe case ( elle hérite de JLabel ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setIcon(new ImageIcon("ressources/caseExplose.gif"));
    Le problème est que si on fait recommencer avant la fin de l animation il reprend bien l animation du début a notre prochaine defaite mais si on laisse l animation se jouer jusqu au bout le gif ne se rejoue pas mais affiche simplement la derniere image de mon gif...

    pourtant je fais new ImageIcon il devrait donc aller le rechercher sur le DD il ne reprend pas celui en mémoire... ?

    J ai vu sur le net MediaTracker et Java Advanced Imaging API mais je ne sais pas trop en quoi cela pourrait m aider et comment les utiliser.

    Merci de m eclairer

    Cordialement
    Alt157
    Les filles sont comme les noms de domaines : les meilleures sont déjà prises.

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Les ImageIcon ont un cache en mémoire. De fait elle ne rechargent pas le fichier si celui ci n'a pas changé.

    Le seul moyen de faire est de recharger l'image dans une BufferedImage (ImageIO.read) et de créer l'ImageIcon avec cette BufferedImage
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre habitué Avatar de Alt157
    Profil pro
    Inscrit en
    Février 2009
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 143
    Points : 146
    Points
    146
    Par défaut
    Bonjour,

    J ai pas su m en sortir avec ta méthode mais pour finir cela fonctionne quand même avec cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Image image = Toolkit.getDefaultToolkit().createImage("ressources/caseExplosion2.gif");
    setIcon(new ImageIcon(image));
    J'avais essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    BufferedImage image = ImageIO.read(new File("ressources/caseExplosion2.gif"));
    setIcon(new ImageIcon(image));
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Image img = new ImageIcon("ressources/caseExplosion2.gif").getImage();
    BufferedImage image = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); 
    Graphics g = image.getGraphics();
    g.drawImage(img, 0, 0, null);
    setIcon(new ImageIcon(image));
    mais le gif ne se jouait pas il restait coincé sur la première image.
    Les filles sont comme les noms de domaines : les meilleures sont déjà prises.

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

Discussions similaires

  1. [FLASH MX 2004] Probleme de creation de GIF anime
    Par hedgehog dans le forum Flash
    Réponses: 5
    Dernier message: 13/03/2005, 19h07
  2. Vitesse d'un gif animé
    Par lucas-18 dans le forum Access
    Réponses: 1
    Dernier message: 25/10/2004, 08h29
  3. [MFC]afficher un gif animé
    Par Blo0d4x3 dans le forum MFC
    Réponses: 26
    Dernier message: 04/10/2004, 15h51
  4. Rx Controls Gif animés
    Par toufou dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/08/2002, 14h09

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