Corriger le code d'erreur en java

Salut,

SVP aider a corriger cette erreur qui s'affiche lors de exécution de mon code JAVA

le code est :
java.lang.ClassCastException: MonBouton cannot be cast to java.awt.event.ActionListener

3 réponses

  1. import java.awt.BorderLayout.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.geom.AffineTransform;
    import java.awt.image.AffineTransformOp;
    import java.awt.image.BufferedImage;
    import java.awt.*;
    import javax.swing.*;
    import java.io.File;
    import java.io.PrintWriter;

    import javax.swing.*;
    public class MonBouton extends JFrame{
    private final Action_bouton zone_img = new Action_bouton();
    private JButton ouvrir = new JButton("", new ImageIcon("D:\\importer.gif"));
    private JButton enregistrer = new JButton("", new ImageIcon("D:\\enregitrer.gif"));
    private JButton assombrir = new JButton("", new ImageIcon("D:\\SOMBRE.gif"));
    private JButton agrandir = new JButton("", new ImageIcon("D:\\agrandir.gif"));
    private JButton reduire = new JButton("", new ImageIcon("D:\\REDUIRE.gif"));
    private JButton niveau_gris = new JButton("", new ImageIcon("D:\\niveau_gris.gif"));
    private JButton brillance = new JButton("", new ImageIcon("D:\\bRILLANCE.gif"));
    private JButton binairisation = new JButton("", new ImageIcon("D:\\reglage.gif"));

    MonBouton () {

    JPanel X = new JPanel();
    X.setLayout(null); // rendre le latout nuul pour que setBound de boutton ca marche

    //setBounds(int positionX, int positionY, int tailleX, int tailleY) xant la position sur l'écran ainsi que la taille.
    ouvrir.setBounds(30, 50, 230, 60);
    X.add ( ouvrir ) ;
    ouvrir.addActionListener(null);

    enregistrer.setBounds(30, 120, 230, 60);
    X.add ( enregistrer ) ;
    enregistrer.addActionListener(null);

    niveau_gris.setBounds(30, 190, 230, 60);
    X.add ( niveau_gris ) ;
    niveau_gris.addActionListener(null);

    assombrir.setBounds(30, 260, 230, 60);
    X.add ( assombrir) ;
    assombrir.addActionListener(null);

    binairisation.setBounds(30, 330, 230, 60);
    X.add ( binairisation) ;
    binairisation.addActionListener(null);

    agrandir.setBounds(30, 400, 230, 60);
    X.add ( agrandir ) ;
    agrandir.addActionListener(null);

    reduire.setBounds(30, 470, 230, 60);
    X.add ( reduire ) ;
    reduire.addActionListener(null);

    brillance.setBounds(30, 540, 230, 60);
    X.add( brillance );
    brillance.addActionListener(null);

    getContentPane().add(zone_img);
    //option de la fenetre
    add(X);
    setBounds(0, 0, 950, 700) ;
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    setTitle("Ma Fenetre") ;
    }
    // les actions des boutton
    public void actionPerformed(ActionEvent e) {
    Object source = e.getSource();
    if (source==ouvrir)
    {
    JFileChooser fileOuvrirImage = new JFileChooser();
    if (fileOuvrirImage.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
    zone_img.ajouterImage(new File(fileOuvrirImage.getSelectedFile()
    .getAbsolutePath()));
    }
    } else if (source==enregistrer) {
    JFileChooser fileEnregistrerImage = new JFileChooser();
    if (fileEnregistrerImage.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
    File fichierEnregistrement = new File(fileEnregistrerImage.getSelectedFile().getAbsolutePath()+ ".JPG");
    zone_img.enregistrerImage(fichierEnregistrement);
    }

    } else
    if (source == niveau_gris) {
    zone_img.imageEnNiveauGris();
    } else if (source == brillance) {
    zone_img.imageEclaircie();
    } else if (source == binairisation) {
    zone_img.imageBinaire();
    } else if (source == agrandir) {
    zone_img.agrandirImage();
    } else if (source == reduire) {
    zone_img.reduireImage();
    }else if(source == assombrir){
    zone_img.imageSombre();
    }
    }

    public static void main(String args[])
    {
    try {
    MonBouton frame = new MonBouton();
    frame.setVisible(true);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    1. Modérateur
      Il y a des balises de codes pour éviter de perdre l'indentation de ton code, le mieux serait de s'en servir ;)

      Sinon, vu que tu n'a pas mis tout ton code, j'ai essayé de "deviner" ce qu'il manquait, mais du coup je n'ai pas d'erreur...

      import java.awt.Component;
      import java.awt.event.ActionEvent;
      
      import java.io.File;
      
      import javax.swing.ImageIcon;
      import javax.swing.JButton;
      import javax.swing.JFileChooser;
      import javax.swing.JFrame;
      import javax.swing.JPanel;
      import javax.swing.WindowConstants;
      
      class Action_bouton extends Component
      {
          private static final long serialVersionUID = 1L;
          public void imageSombre() {}
          public void reduireImage() {}
          public void agrandirImage() {}
          public void imageBinaire() {}
          public void imageEclaircie() {}
          public void imageEnNiveauGris() {}
          public void enregistrerImage(File fichierEnregistrement) {}
          public void ajouterImage(File file) {}    
      }
      
      public class MonBouton extends JFrame
      {
          private static final long serialVersionUID = 1L;
          private final Action_bouton zone_img = new Action_bouton();
          private JButton ouvrir = new JButton("", new ImageIcon("D:\\importer.gif"));
          private JButton enregistrer = new JButton("", new ImageIcon("D:\\enregitrer.gif"));
          private JButton assombrir = new JButton("", new ImageIcon("D:\\SOMBRE.gif"));
          private JButton agrandir = new JButton("", new ImageIcon("D:\\agrandir.gif"));
          private JButton reduire = new JButton("", new ImageIcon("D:\\REDUIRE.gif"));
          private JButton niveau_gris = new JButton("", new ImageIcon("D:\\niveau_gris.gif"));
          private JButton brillance = new JButton("", new ImageIcon("D:\\bRILLANCE.gif"));
          private JButton binairisation = new JButton("", new ImageIcon("D:\\reglage.gif"));
      
          MonBouton ()
          {
              JPanel X = new JPanel();
              X.setLayout(null); // rendre le latout nuul pour que setBound de boutton ca marche
                  
              //setBounds(int positionX, int positionY, int tailleX, int tailleY) xant la position sur l'écran ainsi que la taille.
              ouvrir.setBounds(30, 50, 230, 60);
              X.add ( ouvrir ) ;
              ouvrir.addActionListener(null);
              
              enregistrer.setBounds(30, 120, 230, 60);
              X.add ( enregistrer ) ;
              enregistrer.addActionListener(null);
              
              niveau_gris.setBounds(30, 190, 230, 60);
              X.add ( niveau_gris ) ;
              niveau_gris.addActionListener(null);
              
              assombrir.setBounds(30, 260, 230, 60);
              X.add ( assombrir) ;
              assombrir.addActionListener(null);
                  
              binairisation.setBounds(30, 330, 230, 60);
              X.add ( binairisation) ;
              binairisation.addActionListener(null);
                  
              agrandir.setBounds(30, 400, 230, 60);
              X.add ( agrandir ) ;
              agrandir.addActionListener(null);
                  
              reduire.setBounds(30, 470, 230, 60);
              X.add ( reduire ) ;
              reduire.addActionListener(null);
                  
              brillance.setBounds(30, 540, 230, 60);
              X.add( brillance );
              brillance.addActionListener(null);
              
              getContentPane().add(zone_img);
              //option de la fenetre
              add(X);
              setBounds(0, 0, 950, 700) ;
              setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
              setTitle("Ma Fenetre") ;
          }
              
          // les actions des boutton
          public void actionPerformed(ActionEvent e) 
          {
              Object source = e.getSource();
              
              if (source==ouvrir)
              {
                  JFileChooser fileOuvrirImage = new JFileChooser();
                  if (fileOuvrirImage.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) 
                  {
                      zone_img.ajouterImage(new File(fileOuvrirImage.getSelectedFile()
                                                  .getAbsolutePath()));
                  }
              } 
              else if (source==enregistrer) 
              {
                  JFileChooser fileEnregistrerImage = new JFileChooser();
                  if (fileEnregistrerImage.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) 
                  {
                  File fichierEnregistrement = new File(fileEnregistrerImage.getSelectedFile().getAbsolutePath()+ ".JPG");
                  zone_img.enregistrerImage(fichierEnregistrement);
                  }        
              } 
              else if (source == niveau_gris)
                  zone_img.imageEnNiveauGris();
              else if (source == brillance) 
                  zone_img.imageEclaircie();
              else if (source == binairisation)
                  zone_img.imageBinaire();
              else if (source == agrandir)
                  zone_img.agrandirImage();
              else if (source == reduire)
                  zone_img.reduireImage();
              else if(source == assombrir)
                  zone_img.imageSombre();
          }
          
          public static void main(String args[])
          {
              try
              {
                  MonBouton frame = new MonBouton();
                  frame.setVisible(true);
              } 
              catch (Exception e) 
              {
                  e.printStackTrace();
              }
          }
      }