Changer d'image au clique
Résolu/Fermé
skflers61
Messages postés
43
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
21 novembre 2014
-
16 nov. 2014 à 11:03
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 16 nov. 2014 à 13:55
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 16 nov. 2014 à 13:55
A voir également:
- Changer d'image au clique
- Changer dns - Guide
- Piratage facebook changer mot de passe - Guide
- Changer clavier qwerty en azerty - Guide
- Image iso - Guide
- Acronis true image - Télécharger - Sauvegarde
1 réponse
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
16 nov. 2014 à 13:55
16 nov. 2014 à 13:55
Bonjour,
1) ActionListener est utilisable par un certain nombre de composants, mais pas tous et ne dispose que d'une seule méthode
MouseListener est elle utilisable par tous les composants (car définie dans Component) et dispose de cinq méthodes
2) Tu peux faire comme ceci :
Remarque : je te conseilles de ne pas mélanger les composants et leurs listeners.
En gros ce code est à éviter :
Il est préférable d'avoir une classe pour le composant, une autre pour le listener :
1) ActionListener est utilisable par un certain nombre de composants, mais pas tous et ne dispose que d'une seule méthode
actionPerformed, l'action à l'origine de l'événement dépendra au composant (voir la documentation pour chacun).
MouseListener est elle utilisable par tous les composants (car définie dans Component) et dispose de cinq méthodes
mouseEntered,
mouseExited,
mousePressed,
mouseReleasedet
mouseClicked, pour gérer tous les événements souris.
2) Tu peux faire comme ceci :
private final JLabel image; private final Icon image1; private final Icon image2; private boolean toggleImage; // ... image1 = new ImageIcon("image1.png"); image2 = new ImageIcon("image2.png"); toggleImage = true; image = new JLabel(image1); // ... @Override public void mouseClicked(MouseEvent e) { toggleImage = !toggleImage; image.setIcon(toggleImage ? image1 : image2); }
Remarque : je te conseilles de ne pas mélanger les composants et leurs listeners.
En gros ce code est à éviter :
public class VuePoste extends JPanel implements MouseListener { public VuePoste(int numeroPoste) { this.addMouseListener(this); } }
Il est préférable d'avoir une classe pour le composant, une autre pour le listener :
public class ToggleImageListener implements MouseListener { private final JLabel image; private final Icon image1; private final Icon image2; private boolean toggleImage; public ToggleImageListener(JLabel image, Icon image1, Icon image2) { this.image = image; this.image1 = image1; this.image2 = image2; toggleImage = true; image.setIcon(image1); } @Override public void mouseClicked(MouseEvent e) { toggleImage = !toggleImage; image.setIcon(toggleImage ? image1 : image2); } } public class VuePoste extends JPanel { private final JLabel image; public VuePoste(int numeroPoste) { image = new JLabel(); Icon image1 = new ImageIcon("image1.png"); Icon image2 = new ImageIcon("image2.png"); addMouseListener(new ToggleImageListener(image, image1, image2)); } }