Le code ci dissous que j'ai réalisé s'execute sans auccun evnnement sur le bouto

Résolu
sabri250 Messages postés 4 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 10 juillet 2009 - 18 juin 2009 à 11:34
 Utilisateur anonyme - 20 juin 2009 à 11:30
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Change  extends JFrame implements ActionListener {


 /**
  *
  */
 private static final long serialVersionUID = 1L;
 private Object b1;
  private Object b2;
  Change(){
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setTitle("Couleur");
  setSize(200,200);
  setLocationRelativeTo(null);
  JPanel p=new JPanel();
  JButton b1=new JButton("rouge");
  p.add(b1);
  JButton b2=new JButton("green");
  p.add(b2);
  add(p);
     }
 
      public void  actionPerformed(ActionEvent e){
       Color color=getBackground();
       Object source=e.getSource();
       if(source==b1) color =Color.red;
       else if(source==b2) color=Color.green;
       setBackground(color);
       repaint();
      }
  
 public static void main(String[] args) {
  Change CH=new Change();
  CH.setVisible(true);
 }
 
 


}

4 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
18 juin 2009 à 15:47
Salut,

un peu de politesse ne fait pas de mal, tu sais des mots comme 'bonjour', 's'il vous plait' et 'merci'.
Ensuite nous balancer ton code comme ça, ça ne donne pas envie. Une petite explication de ton problème serait la bienvenue.
3
Utilisateur anonyme
19 juin 2009 à 20:53
Salut,

Tout simplement, tu n'as pas de listener

Il te suffira d'ajouter :

b1.addActionListener(this); après 
  JButton b1=new JButton("rouge"); et

b2.addActionListener(this); après
  JButton b2=new JButton("green");

Cordialement,

...\ Dan /...
0
sabri250 Messages postés 4 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 10 juillet 2009
20 juin 2009 à 10:47
salut merci danimo pour la  réponse mais j'ai ajouté les deux fonctions que tu as dit mais auccun changement
0
Utilisateur anonyme
20 juin 2009 à 11:30
Bonjour,

L'event existe bien, il te suffit par exemple de faire un println après public void  actionPerformed(ActionEvent e){ pour le constater.

Exemple:
public void  actionPerformed(ActionEvent e){
System.out.println("xxxxxxxx");

Par contre, c'est après  Object source=e.getSource();
       if(source==b1) que ca cloche...

Ajoute un print pour le constater ainsi qu'après if(source==b1) ...

Pour que ca passe voici les modifs à faire:
private

staticfinallong serialVersionUID = 1L;
//private Object b1;
//private Object b2;
private JButton b1;
private JButton b2;
-------
------
et ici:

  JPanel p=new JPanel();
  //JButton b1=new JButton("rouge");
  b1=new JButton("rouge");
  p.add(b1);
  //JButton b2=new JButton("green");
  b2=new JButton("green");
  p.add(b2);
  add(p);

Ensuite tu constateras qu'on passe bien par tous les print mais (encore un hic), il faudra que tu trouves pourquoi ta fenêtre ne se réaffiche pas.

Cordialement,
...\ Dan /...
0
Rejoignez-nous