Probleme avec ActionListener

Résolu/Fermé
billy - 29 juil. 2016 à 19:05
 billy - 29 juil. 2016 à 22:59
bonjour tout monde ,y'a quelqu'un qui peut a m'aider pour régler mon probleme : je veux faire une calcule

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Calculatrice;
import static com.oracle.util.Checksums.update;
   import java.awt.BorderLayout;
import java.awt.FlowLayout;
 
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import javafx.event.ActionEvent;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
 
/**
 *
 * @author vondutch
 */
 
 
          
  
 
public class Calculatrice {
     
    JPanel panneau;
    JPanel panneauchiffre;
    JTextField afficheur;
      JButton bouton0=new JButton("0");
        JButton bouton1=new JButton("1");
        JButton bouton2=new JButton("2");
        JButton bouton3=new JButton("3");
        JButton bouton4=new JButton("4");
        JButton bouton5=new JButton("5");
        JButton bouton6=new JButton("6");
        JButton bouton7=new JButton("7");
        JButton bouton8=new JButton("8");
        JButton bouton9=new JButton("9");
        JButton boutonvirgul=new JButton(",");
        JButton boutonegal =new JButton("=");
        JButton boutonplus=new JButton("+");
        JButton boutonmoin=new JButton("-");
        JButton boutonfois=new JButton("*");
         
interface MouseMotionListener{
     void MouseDragged(MouseEvent evenement);
     void MouseMoved(MouseEvent evenement);
      
    }
      interface ActionListener{
     public void actionPerformed(ActionEvent evenement)
             ;
      }
     
     
    class monblocdessin implements MouseMotionListener{
        
     public void MouseDragged(MouseEvent evenement){};
 
     public void MouseMoved(MouseEvent evenement){};
         
   
   }
    
     public class MoteurCalcul implements ActionListener{
 
         
 public void actionPerformed (ActionEvent e){
         //On affiche le chiffre additionnel dans le label
       
       
         
     }  }
  Calculatrice(){
       
    panneau =new JPanel(); 
       
    JTextField afficheurs=new JTextField(2);
       
      afficheurs.setText("0");
       
      panneau.add("NORTH",afficheurs);
       
        
      GridLayout dispo1 =new GridLayout(2,2,3,3);
      
      panneau.setLayout(dispo1);
      
      panneauchiffre =new JPanel();
       
       
      GridLayout dispo2 =new GridLayout(4,2);
      panneauchiffre.setLayout(dispo2);
       
      panneauchiffre.add(bouton1);
      panneauchiffre.add(bouton2);
      panneauchiffre.add(bouton3);
      panneauchiffre.add(bouton4);
      panneauchiffre.add(bouton5);
      panneauchiffre.add(bouton6);
      panneauchiffre.add(bouton7);
      panneauchiffre.add(bouton8);
      panneauchiffre.add(bouton9);
      panneauchiffre.add(boutonvirgul);
      panneauchiffre.add(bouton0);
      panneauchiffre.add(boutonegal);
       
       JPanel  panneauoppe =new JPanel();
       
       
     // GridLayout dispo3 =new GridLayout();
      //panneauoppe.setLayout(dispo2);
       
      panneauoppe.add(boutonplus);
      panneauoppe.add(boutonplus);
      panneauoppe.add(boutonmoin);
      panneauoppe.add(boutonfois);
       
       
      panneau.add("SOUTH",panneauoppe);
       
       
       
      panneau.add("",panneauchiffre);
      JFrame frame=new JFrame("calculatrice");
      frame.setContentPane(panneau);
       
      frame.setVisible(true);
      frame.setSize(500,300);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
     MoteurCalcul moteurcalculs = new MoteurCalcul() ;
      
     bouton0.addActionListener(moteurcalculs);
  }
 
 
    public static void main(String[] args) {
        // TODO code application logic here
        Calculatrice calc= new Calculatrice();
       
    }}



je ne sais c quoi au juste,

l'erreur se presente ici : en parenthèse ->moteurcalculs

quand je fait une action a un bouton

bouton0.addActionListener(moteurcalculs);


le message d'erreur :

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: javax.swing.JButton.addActionListener
at Calculatrice.Calculatrice.<init>(Calculatrice.java:151)
at Calculatrice.Calculatrice.main(Calculatrice.java:158)

merci a votre aide.

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
29 juil. 2016 à 19:34
Bonjour,

Avant d'exécuter ton programme tu dois le compiler sans erreur.
Or en le compilant tu vas avoir cette erreur (ligne 151) :

"The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the arguments (Calculatrice.MoteurCalcul)"

Pourquoi avoir redéfini les interfaces de Listener (lignes 63-71) ?

Supprimes les et importes celles de Java :
import java.awt.event.ActionListener;
import java.awt.event.MouseMotionListener;

Remarque l'import de javafx.event.ActionEvent est faux, c'est java.awt.event.ActionEvent dont tu as besoin.

Tu peux simplifier tout tes imports avec uniquement ceux-ci :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
0
salut ,merci beaucoup a votre aide mais l'erreur existe toujour

MoteurCalcul moteurcalculs = new MoteurCalcul() ;

bouton0.addActionListener(moteurcalculs);

la ou j'ai souligné
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
29 juil. 2016 à 22:25
Il faut que tu supprimes les interfaces MouseMotionListener et ActionListener que tu as redéfinis pour les substituer aux vrais grâce aux imports.

Et n'oublies pas de compiler ton programme avant de l'exécuter.
0
ohhhh ,merci bcp bcp mon ami je suis tres content, je te remercie encore une fois

c reglé
0