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 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 16 nov. 2014 à 13:55
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 16 nov. 2014 à 13:55
A voir également:
- Changer d'image au clique
- Frédéric cherche à faire le buzz sur les réseaux sociaux. il a ajouté une image de manchots sur une image de plage. retrouvez l'image originale de la plage. que cachent les manchots ? ✓ - Forum Windows
- Recherche par image - Guide
- Changer dns - Guide
- Changer clavier qwerty en azerty - Guide
- Piratage facebook changer mot de passe - Guide
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
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));
}
}