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

Collection et Stream Java Discussion :

Changement simultané dans plusieurs cases d'un tableau


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Profil pro
    Informaticien
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Points : 7
    Points
    7
    Par défaut Changement simultané dans plusieurs cases d'un tableau
    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 : 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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    package test;
     
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
     
    import javax.swing.AbstractButton;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    public class Fenetre extends JFrame implements ActionListener {
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	private JPanel pan = new JPanel();
    	protected ImageIcon b1;
    	protected ImageIcon b2;
     
    	public Fenetre() {
     
    		this.setTitle("Test");
    		this.setSize(450, 500);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setResizable(false);
    		this.setLocationRelativeTo(null);
    		setLayout(new GridLayout(5, 5, 0, 0));
     
    		JButton[] b = new JButton[25];
    		for (int i = 0; i < b.length; i++) {
    			b1 = new ImageIcon("b1.gif");
    			b2 = new ImageIcon("b2.gif");
    			b[i] = new JButton(b1);
    			b[i].addActionListener(this);
     
    			pan.add(b[i]);
    		}
    		setContentPane(pan);
    	}
     
    	{
     
    		this.setContentPane(pan);
    		this.setVisible(true);
    	}
     
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		JButton b = (JButton) (e.getSource());
    		ImageIcon mImageIconButton = (ImageIcon) b.getIcon();
     
    		if (mImageIconButton.getDescription().equals(b1.getDescription())) {
    			b.setIcon(b2);
    		} else if (mImageIconButton.getDescription()
    				.equals(b2.getDescription())) {
    			b.setIcon(b1);
    		}
    	}
     
    }
    Bonne journée

  2. #2
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 127
    Points : 76
    Points
    76
    Par défaut
    perso je ne comprends pas ce qui coince... (c'est peut-être pour ça que tu n'as pas encore eu de réponse)

  3. #3
    Futur Membre du Club
    Profil pro
    Informaticien
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Points : 7
    Points
    7
    Par défaut Changement simultané dans plusieurs cases d'un tableau
    Bonjour Firgon,
    Alors pour le moment, je n'arrive qu'a changer les pions un par un mais pas à en changer plusieurs en un clic.
    En fait, si je sélectionne un pion, il y aurait des pions de coordonnées différentes qui changerais en même temps (en un seul clic).
    C'est là que je bloque.

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 946
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 946
    Points : 5 659
    Points
    5 659
    Par défaut
    Kei,

    Il n'y a pas de solution miracle : c'est à toit de calculer tout ça.

    En fonction de la sélection, il te faut donc calculer quels sont les autres pions qui doivent être modifiés, et comment ils doivent l'être, et faire les modifications nécessaires.

  5. #5
    Futur Membre du Club
    Profil pro
    Informaticien
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Points : 7
    Points
    7
    Par défaut Changement simultané dans plusieurs cases d'un tableau
    Bonjour Droggo,
    Merci pour ta réponse.
    Dans la théorie, je vois.
    Mais étant débutant, c'est l'implémentation du code, la méthode, sur lesquels je me pose des questions.
    En fait je cherche un petit bout de code pour me mettre sur la voie.
    Bonne journée.

  6. #6
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Tu pourrais commencer par créer un objet avec ton tableau de boutons et les règles de gestion associées.
    Ensuite fais en sorte que dans ton actionPerfomed tu puisses manipuler ce nouvel objet ou directement ton tableau, en le mettant en attribut de ta classe par exemple.

  7. #7
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Ton tableau "JButton[] b" ne doit pas être une variable locale dans ton constructeur mais une données membre de ta classe "Fenetre". Ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private static final long serialVersionUID = 1L;
    	private JPanel pan = new JPanel();
    	protected ImageIcon b1;
    	protected ImageIcon b2;
            private JButton[] b;
    Ainsi, ton tableau est accessible dans la méthode actionPerformed. Il te suffit ensuite de retrouver les coordonnées du JButton dans le tableau et enfin d'effectuer les calculs propres à Othello (j'imagine que c'est ce jeu...).

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/04/2009, 19h25
  2. Recherche simultanée dans plusieurs classeurs
    Par Bomba dans le forum Excel
    Réponses: 1
    Dernier message: 19/04/2008, 00h08
  3. Réponses: 10
    Dernier message: 06/04/2008, 09h25
  4. Réponses: 6
    Dernier message: 25/11/2007, 17h59
  5. Lien dans une case d'un tableau
    Par will89 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 27/04/2006, 10h50

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