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

  • Votes
  • Date
  • Date décroissante
  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();
            }
        }
    }
    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();
      }
      }
      }