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 :

Image dans un JPanel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut Image dans un JPanel
    Bonjour,
    Je suis pas encore très expérimenté en java. J'ai un petit soucis.
    En fait, j'ai un JPanel dans lequel j'ai un bouton et une ImageIcon.
    J'ai deux images et je voudrai que l'image change quand je clique sur le bouton mais indéfiniment, c'est à dire :
    image1 ==> je clique ==> image2 ==> je clique ==> image1 etc...
    Cela change une fois l'image mais après, j'ai beau recliqué, rien ne se passe.

    Voici mon code : (Merci d'avance)
    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
    public class PanelPlateau extends JPanel implements MouseListener
    	{
    	  JButton JBPlateau = new JButton ("Changer d'image");
    	  boolean nb = true;
     
    	  JLabel picture1 = new JLabel(new ImageIcon("./images/plateau1.gif"));
    	  JLabel picture2 = new JLabel(new ImageIcon("./images/plateau2.gif"));
     
    	  public PanelPlateau()
    	  {
    		// Abonnement du bouton
    		JBPlateau.addMouseListener(this);
     
    		// On ajoute le bouton et l'image (en fonction du clic) dans a panel
    		this.add(JBPlateau);
    		if(nb == true) this.add(picture1);
    		if(nb == false) this.add(picture2);			
     
    		}
    	public void mouseClicked(MouseEvent e) 
    	{
    		Object s = (JButton)e.getSource();
    		if((JButton)s == JBPlateau)
                             {
    			/*if(nb == true)
    		    	{
    				picture1.setText(null);
    				nb = false;
    		    	}
    		    	if(nb == false)
    		    	{
    		    		picture2.setText(null);
    		    		nb = true;
    			 }*/
     
                                          this.add(picture2);
    		    	picture1.setText(null);
    		    	this.add(picture1);
                              }
     
    	}
    		public void mouseEntered(MouseEvent e) {}
    		public void mouseExited(MouseEvent e) {}
    		public void mousePressed(MouseEvent e) {}
    		public void mouseReleased(MouseEvent e) {}
     
    }

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    jette un coup d'oeil du côté de la classe javax.swing.Timer, elle est faite pour toi
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 75
    Par défaut
    Salut,

    Je ne suis pas non plus un expert en Swing mais j'ai 2 remarques :

    - généralement, pour récupérer des évènements de click sur un bouton,
    on implémente non pas un MouseListener mais un ActionListener.
    - pour afficher une image, on utilise non pas des JLabel mais les méthodes paintComponent() et drawImage().

    J'ai moi-même posé une question similaire à la tienne donc va voir sur ce lien :
    http://www.developpez.net/forums/sho...d.php?t=330198
    tu auras un exemple avec du code.

    a+

  4. #4
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Tout à fait d'accord pour l'ActionListener. Pour ce qui est de l'ImageIcon vs. paintComponent, je ne sais pas si il y a des règles précises. L'ImageIcon a quand même l'avantage d'être très pratique à utiliser.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. Image dans un Jpanel
    Par fontaigo dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 19/04/2006, 18h13
  2. comment afficher une image dans un jpanel ?
    Par 180degrés dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 18/04/2006, 15h33
  3. Persistance d'une image dans un JPanel
    Par Robiwan59 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/02/2006, 19h20
  4. Rafraichir image dans un jPanel
    Par kentao dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/01/2006, 16h31
  5. [JPanel]Mettre une image dans un JPanel
    Par ehmppowa dans le forum Composants
    Réponses: 11
    Dernier message: 30/11/2005, 20h17

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