Ajouter un commentaire

Niroken

Hello,

Ben en fait pour ca j'ai envisagé deux facons de voir les choses, peut être y en a t'il plus.....

La première :
Tu définies un attributà ta classe Frame, tableau matrice de JButton de la facon suivante....

JButton[][] mButtons = new JButton[5][5];

Ta classe JFrame implements ActionListener donc dans la métode action performed tu fais :

public void actionPerformed(ActionEvent e) {
 for (int i = 0; i < mButtons.length; i++) {
  for (int j = 0; j < mButton[i].length j++) {
    if (((JButton)e.getSource()).equals(mButtons[i][j])) {
       //Alors la tu as récupéré la position dans le tableau du boutton cliqué, il te suffit de changer la couleur des pions que tu veux par rapport a celui ci.
    }
  }
 }
}

Pour la seconde, la c'est un peu plus complexe, d'ailleurs j'insiste bien sur le fait que tt est dans l'ancien topic, voir mon dernier post :)

Mais sinon pour l'explication, chaque boutton va avoir des attributs spécifiques qui vont etre sa couleur, et une liste des boutons qui vont changer de couleur en même temp qu'il sera cliqué. Cette liste de bouttons sera chargée au moment où tu initialiseras ta fenetre.
Pour faire ca en java, un petit peu d'héritage :

class ReversoPion extends JButton {
 private List<ReversoPion> mReversoPionsVoisins;
 // enumeration pour indiquer la couleur du pion valeur {fonce, clair}
 private CouleurReversoPioin mCouleurReversoPion;
}

La méthode actionPerformed devient ceci "extrait de l'autre topic" :

public void actionPerformed(ActionEvent pE) { 
                changeReversoPionCouleur(); 
                changeReversoPionsVoisinsCouleur(); 
}

avec les méthodes biens senties :

public void changeReversoPionCouleur() { 
        if (mCouleurReversoPion == CouleurReversoPion.clair) { 
            mCouleurReversoPion = CouleurReversoPion.fonce; 
            setIcon(sImageIconPionFonce); 
        } else if (mCouleurReversoPion == CouleurReversoPion.fonce) { 
            mCouleurReversoPion = CouleurReversoPion.clair; 
            setIcon(sImageIconPionClair); 
        } 
    } 
    
    public void changeReversoPionsVoisinsCouleur() { 
        for (ReversoPion vReversoPionTmp : mReversoPionsVoisins) { 
            vReversoPionTmp.changeReversoPionCouleur(); 
        } 
    } 

C'est quand même moins chargé :) .

Bonne chance,
Niroken

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 W     W  RRRR   Y   Y  EEEE  PPPP  
W W R R Y Y E P P
W W W RRRR Y EEE PPPP
W W W R R Y E P
W W R RR Y EEEE P