Changer plusieurs images simultanément dans un tableau

Changer plusieurs images simultanément dans un tableau - Java - Programmation

Marsh Posté le 28-12-2008 à 19:14:04    

Bonjour,
J'ai fait un tableau de boutons dans lequel je peux changer l'image lorsque je clique sur le bouton. Cela passe d'un pion clair à un pion sombre.
Maintenant, j'aimerai que lorsque je clique sur un pion, cela change certains pions du tableau en même temps. Que cela passe passe d'un pion clair à un pion foncé ou inversement dans des endroits définis du tableau en même temps.
Avez-vous une idée à ce sujet?
Voici mon code:

Code :
  1. package test;
  2. import java.awt.GridLayout;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.awt.event.MouseEvent;
  6. import java.awt.event.MouseListener;
  7. import javax.swing.AbstractButton;
  8. import javax.swing.ImageIcon;
  9. import javax.swing.JButton;
  10. import javax.swing.JFrame;
  11. import javax.swing.JPanel;
  12. public class Fenetre extends JFrame implements ActionListener {
  13. /**
  14.  *  
  15.  */
  16. private static final long serialVersionUID = 1L;
  17. private JPanel pan = new JPanel();
  18. protected ImageIcon b1;
  19. protected ImageIcon b2;
  20. public Fenetre() {
  21.  this.setTitle("Test" );
  22.  this.setSize(450, 500);
  23.  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24.  this.setResizable(false);
  25.  this.setLocationRelativeTo(null);
  26.  setLayout(new GridLayout(5, 5, 0, 0));
  27.  JButton[] b = new JButton[25];
  28.  for (int i = 0; i < b.length; i++) {
  29.   b1 = new ImageIcon("b1.gif" );
  30.   b2 = new ImageIcon("b2.gif" );
  31.   b[i] = new JButton(b1);
  32.   b[i].addActionListener(this);
  33.   pan.add(b[i]);
  34.  }
  35.  setContentPane(pan);
  36. }
  37. {
  38.  this.setContentPane(pan);
  39.  this.setVisible(true);
  40. }
  41. @Override
  42. public void actionPerformed(ActionEvent e) {
  43.  // TODO Auto-generated method stub
  44.  JButton b = (JButton) (e.getSource());
  45.  ImageIcon mImageIconButton = (ImageIcon) b.getIcon();
  46.  if (mImageIconButton.getDescription().equals(b1.getDescription())) {
  47.   b.setIcon(b2);
  48.  } else if (mImageIconButton.getDescription()
  49.    .equals(b2.getDescription())) {
  50.   b.setIcon(b1);
  51.  }
  52. }
  53. }


Bonne journée

Reply

Marsh Posté le 28-12-2008 à 19:14:04   

Reply

Marsh Posté le 06-01-2009 à 11:03:50    

Tu devrait garder une référence à ton tableau de boutons
 

Code :
  1. public class Fenetre extends JFrame implements ActionListener {
  2. /**
  3. *   
  4. */
  5. private static final long serialVersionUID = 1L;
  6. private JPanel pan = new JPanel();
  7. protected ImageIcon b1;
  8. protected ImageIcon b2;
  9. protected JButton[] boutons; // référence aux boutons
  10.   public Fenetre() {
  11.     ...
  12.     JButton[] b = new JButton[25];
  13.     ...
  14.     this.boutons = b;
  15.   }
  16.   ...
  17. }


 
Après, à toi de faire ce qu'il faut dans actionPerformed(ActionEvent)

Reply

Marsh Posté le 06-01-2009 à 18:20:25    

Merci Bidem,
Je test ça.
Bonne journée. ;)

Reply

Marsh Posté le 11-01-2009 à 16:04:06    

Super Bidem,
C'était ce qui me bloquait.
Bonne journée

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed