Question Java

Fermé
Edn0 - Modifié par Edn0 le 20/10/2010 à 16:27
 Utilisateur anonyme - 21 oct. 2010 à 00:05
Bonjour,

Je suis actuellement en train de créer une calculatrice sous eclipse, en java (modèle MVC en entier).
J'ai crée les boutons "0", "1", "2"..."9".
Lorsque l'on clique sur un de ces boutons , la couleur ce bouton devient cyan ( pour chaque bouton j'ai appelé un même écouteur).

voici mon écouteur qui me permet de changer la couleur des boutons lors du clic:

package MVCCalculatrice;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;

public class EcouteurCouleur implements ActionListener{
// VARIABLE D'INSTANCE
JPanel f1;

// CONSTRUCTEUR
EcouteurCouleur(JPanel f) {
f1 = f;
}

/**
* Lors du clic sur le bouton, la couleur du bouton devient "cyan"
*/
@Override
public void actionPerformed(ActionEvent e) {
f1.setBackground(Color.CYAN);
}
}

et voici la façon dont est appelé cet écouteur dans ma Vue:
bouton1.addActionListener(new EcouteurCouleur(contenuFenetre));


J'aimerais, que lorsque je clique sur le bouton "C" ( boutonRemiseZero = new JButton("C");//bouton qui permet la remise à zéro de la calculatrice) , les boutons "0", "1", "2"..."9" reprennent leur couleur initiale.

Comment puis je faire?

Merci beaucoup,

A voir également:

4 réponses

Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 209
20 oct. 2010 à 16:50
Tu pars sur une drole de piste, ca te convient que 555 soit demunié de son interactivité.
Sinon dans ton container de bouton qui est la class de tout les element de ta fenetre, il faut que les parcourir et les remettre a la valeur initiale.
Si tu n as pas de container sur ta fenetre, il faut peut etre que tu les nommes Button"i" et que tu boucle sur le "i".
Mais regarde la definition des classes evenements java
0
je viens de réfléchir à cela,
premièrement j'ai fais une erreur dans mon code .

Voila , j'ai modifié mon écouteur:

package MVCCalculatrice;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;


public class EcouteurCouleur implements ActionListener{
/**
* Lors du clic sur le bouton, la couleur du bouton devient "cyan"
*/
// VARIABLE D'INSTANCE
JButton bouton;

// CONSTRUCTEUR
EcouteurCouleur(JButton b) {
bouton = b;
}

@Override
public void actionPerformed(ActionEvent e) {
bouton.setBackground(Color.CYAN);
}
}


ensuite, dans ma Vue je fais :

"
public class VueCalculatrice implements ActionListener{ ... " et le code qui permet de réinitialiser la couleur de mes boutons lors du clic sur le bouton de remise à zéro, se situera dans la méthode " actionPerformed "

bref, quand j'aurais finis cette application, j'essayerais de vous donner quelquechose un peu plus clair...
0
Je viens de voir votre commentaire Fallentree . Je vous en remercie.
En fait je n'avais aucun soucis sur l'affichage de mes boutons. J'ai une vue qui contient tout ces boutons, et qui contient aussi un champs qui va permettre l'affichage de valeur lorsque l'on clique sur un bouton. Et puis j'ai un modèle et un contrôleur.

Ma question portait simplement sur "Comment faire pour réinitialiser la couleur dues boutons de chiffre quand on clique sur le bouton "C".
Je suis donc en train d'essayer de résoudre cela.
0
Salut,

Je te conseille de ne faire qu'un listener commun à tous les boutons et dans lequel on traitera non seulement ls cas des couleurs, mais aussi le traitement lié à chaque bouton.

// Ce sont des extraits non compilables qui montrent uniquement le traitement des cliques: 

   public class Calculatrice extends JFrame implements ActionListener //extende JFrame peut-être 
   { 
    
   // Déclaration des boutons 
      private JButton b1;  
      private JButton b2;  
      private JButton b3 ;  
      private JButton b4;  
      private JButton b5;  
      private JButton b6;  
      private JButton b7;  
      private JButton b8;  
      private JButton b9;  
      private JButton b0; 
      private JButton bc; 
   // etc 
    
      public Calculatrice()  
      { 
      // Initialisation des boutons 
         b0=new JButton("0");b1=new JButton("1");b2=new JButton("2");  
         b3=new JButton("3");b4=new JButton("4");b5=new JButton("5");  
         b6=new JButton("6");b7=new JButton("7");b8=new JButton("8");  
         b9=new JButton("9"); bc = new JButton("C"); 
      // etc 
       
       
      // Ajout des écouteurs aux deffirents boutons  
         b0.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);  
         b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);  
         b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);  
         b9.addActionListener(this); bc.addActionListener(this); 
      // etc 
      } 
    
   // Écouteur commun: 

      public void actionPerformed( ActionEvent e)  
      { 
         JButton boutonClique = (JButton) e.getSource(); 
         String source = boutonClique.getText(); 
       
      //***************  
         if(source.equals("1"))  
         { 
          
            b1.setBackground(Color.cyan); 
         //suivi du traitement correspondant au bouton b1 
         } 
      // .............. 
         if(source.equals("9"))  
         { 
          
            b9.setBackground(Color.cyan); 
         //suivi du traitement correspondant au bouton b9 
         } 
      // .................. 
         if(source.equals("C"))  
         { 
            for(int i = 0; i <10; i++) 
               if(i == 0) 
                  b0.setBackground(Color.laCouleurInitiale); 
               else 
                  if(i == 1) 
                     b1.setBackground(Color.laCouleurInitiale); 
                  else 
                  { 
                  // etc jusqu'à 9 
                  } 
         //suivi du traitement correspondant au bouton bc 
         } 
      } 

      public static void main(String [] argv )  
      {  
         Calculatrice cal= new Calculatrice();  
      }  
   }
0