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é