Probleme avec ActionListener
Résolu
billy
-
billy -
billy -
bonjour tout monde ,y'a quelqu'un qui peut a m'aider pour régler mon probleme : je veux faire une calcule
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.
/* * 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
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 :
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 :
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.*;
MoteurCalcul moteurcalculs = new MoteurCalcul() ;
bouton0.addActionListener(moteurcalculs);
la ou j'ai souligné
Et n'oublies pas de compiler ton programme avant de l'exécuter.
c reglé