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

2D Java Discussion :

Gestion de plusieurs Gif


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut Gestion de plusieurs Gif
    Bonjour,

    Je suis entrain de faire une sorte de poster interactif qui s'animerai lorsqu'on clique sur l'une des lettres du poster.
    Afin de faire cela j'ai choisi de mettre des images de ces lettres, un gif qui s'activerai lorsqu'une personne clique sur la lettre, et une image de la lettre après le gif (qui une fois terminé ne changerait plus du tout !).

    Cependant j'ai un soucis, lorsqu'il y a une seul lettre ça marche très facilement mais lorsqu'il y a plusieurs lettre lorsqu'on enclenche la première puis quelques secondes plus tard la seconde, la seconde affiche son gif au même moment que la première. Lorsque je flush le gif de la seconde s'affiche normalement mais du coup la première s'arrête ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    package Poster;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    public class Lettre {
     
        private static final int JPANEL_LARG_INT = 600;
        private static final int JPANEL_HAUT_INT = 600;
        public final JPanel pageUn = new JPanel();
        public static JFrame interfaceDeTest = new JFrame("Test UNTITRERANDOM");
     
        public static void main (String[] args){
                interfaceDeTest.setLayout(null);
                interfaceDeTest.setSize(JPANEL_LARG_INT, JPANEL_HAUT_INT); 
                interfaceDeTest.setLocationRelativeTo(null);
                interfaceDeTest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
                CreationImageRapide image1 = new CreationImageRapide(600,0,"./image/B.png","./image/B2.png","./video/B.gif");
                image1.UtilisationImageRapide();
                CreationImageRapide image2 = new CreationImageRapide(600,300,"./image/B.png","./image/B2.png","./video/B.gif");
                image2.UtilisationImageRapide();
     
                interfaceDeTest.setResizable(false);
                interfaceDeTest.setVisible(true);
     
     
        }    
    }


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package Poster;
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.Timer;
    import static Poster.Lettre.interfaceDeTest;
     
     
    public class CreationImageRapide {
     
        private Timer timer;
        public ImageSeule image1, image2, video;
     
         public CreationImageRapide(final int hauteur, final int largeur, String lienImage1, final String lienImage2, final String lienVideo) {
            this.image1 = new ImageSeule(hauteur,largeur,lienImage1);
            this.image2 = new ImageSeule(hauteur,largeur,lienImage2);
            this.video = new ImageSeule(hauteur,largeur,lienVideo);
            this.timer = null;
        }
     
     
         public void UtilisationImageRapide() {
            interfaceDeTest.add(image1.label);
     
            image1.label.addMouseListener(new MouseAdapter()
            {
                public void mouseClicked(MouseEvent e)
                {
                    video.icone.getImage().flush();
                    video.label.setIcon(video.icone); 
                    interfaceDeTest.add(video.label);
                    image1.label.setVisible(false);
                    timer = new Timer(5000, new ActionListener() 
                    {
                        public void actionPerformed(ActionEvent e) {
                            interfaceDeTest.add(image2.label);
                            video.label.setVisible(false);
                        }
                    });
     
                    timer.start();
                    timer.setDelay(5000);
     
     
                }
            });
     
        }
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    package Poster;
     
    import javax.swing.ImageIcon;
    import javax.swing.JLabel;
     
     
    public class ImageSeule {
     
        int basDeLimage;
        int gaucheDeLimage;
        JLabel label;
        String lien;
        ImageIcon icone;
     
        public ImageSeule(int hauteur, int largeur, String lien){
            this.basDeLimage = hauteur;
            this.gaucheDeLimage = largeur;
            this.lien = lien;
            this.label = new JLabel();
            this.icone =  new ImageIcon(lien);
            this.label.setIcon(icone); 
            this.label.setBounds(this.gaucheDeLimage, 1, 300, this.basDeLimage); 
        }
     
     
    }
    Voilà les 3 classes que j'ai créé, avez vous une idée afin de me débloquer ?

    Merci d'avance !

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut Résolu
    Re-bonjour,
    En fait j'ai résolu le problème, en réalité le flush() s'appliquait sur les deux images car je n'avais pas deux images différentes.

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

Discussions similaires

  1. Gestion de plusieurs langues
    Par emardjean dans le forum Langage
    Réponses: 2
    Dernier message: 09/04/2006, 18h50
  2. Pour Caféine - gestion de plusieurs photos
    Par le géologue dans le forum Access
    Réponses: 1
    Dernier message: 16/03/2006, 19h08
  3. Gestion de plusieurs couches d'affichage
    Par esteban63 dans le forum Windows
    Réponses: 2
    Dernier message: 08/03/2006, 21h21
  4. [FLASH MX] Gestion de Plusieurs Clips Identiques
    Par Darkdaemons dans le forum Flash
    Réponses: 2
    Dernier message: 18/01/2006, 19h06
  5. Réponses: 8
    Dernier message: 06/07/2004, 14h17

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