Changer d'image par un clic

olihya Messages postés 3 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 19 mai 2012 - 21 déc. 2008 à 10:17
olihya Messages postés 3 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 19 mai 2012 - 23 déc. 2008 à 10:26
Bonjour,

J'ai un tableau de boutons images et j'aimerai lorsque je clique sur un
bouton changer l'image (passer d'un pion clair ("b1.gif") à un pion
sombre ("b2.gif").

Quelqu'un aurait-il un idée?

Voici mon code:
 
package test;
 
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
 
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
 
publicclass Fenetre extends JFrame {
 
/**
*
*/
privatestaticfinallong serialVersionUID = 1L;
private JPanel pan = new JPanel();
 
// private JButton b = new JButton(new ImageIcon("b1.gif"));
 
public Fenetre(){
 
this.setTitle("REVERSO");
this.setSize(450, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setLocationRelativeTo(null);
setLayout(new GridLayout(5, 5, 5, 5));
 
// Ajout des boutons à notre contentPane
JButton[] b = new JButton[25];
for(int i = 0; i < b.length; i++){
 
b[i] = new JButton(new ImageIcon("b1.gif"));
b[i].addMouseListener(new MouseListener(){
@Override
publicvoid mouseClicked(MouseEvent e){
// TODO Auto-generated method stub

}
 
@Override
publicvoid mouseEntered(MouseEvent e){
// TODO Auto-generated method stub

}
 
@Override
publicvoid mouseExited(MouseEvent e){
// TODO Auto-generated method stub

}
 
@Override
publicvoid mousePressed(MouseEvent e){
// TODO Auto-generated method stub

}
 
@Override
publicvoid mouseReleased(MouseEvent e){
// TODO Auto-generated method stub

}
});
pan.add(b[i]);
}
setContentPane(pan);
}
 
{
 
this.setContentPane(pan);
this.setVisible(true);
}
}


Bonne journée

2 réponses

indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
23 déc. 2008 à 09:10
Bonjour,
Tout d'abord, pour changer l'image, je pense qu'il faudrait que tu utilises la méthodes de la classe JButton:
public void setIcon([file:///C:/docs/jdk1.6/docs/api/javax/swing/Icon.html Icon] defaultIcon)

Ensuite, le mieux pour détecter ce besoin de changer est d'affecter au bouton un ActionListener (qui sera plus efficace que ton MouseListener):
mybutton.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent evt){
      ((JButton)(evt.getSource())).setIcon(newIcon);
   }
});

Voili voilà (PS: n'utilise pas les layout à null, c'est dur ensuite à gérer. Utilise plutôt des BorderLayout, GridBagLayout, ou si tu es en 1.5 des SpringLayout)

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
olihya Messages postés 3 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 19 mai 2012
23 déc. 2008 à 10:26
Merci pour ta réponse Indiana_Jules.
Je vais tester cela.
Bonne journée.
0