Grehunter | bonsoir à tous,
voilà, je débute en java et je developpe une caculatrice avec interface gaphique (basique).
cependant pour les opérations (variables en float) je rencontre un problème de typage:
"operator + cannot be applied ..." alors que toutes mes variables sont en float:
Code :
- import java.awt.event.*;
- import java.awt.*;
- public class Graphcalc extends Frame implements ActionListener
- {
- TextField zone;
- Button bouton, bouton1, bouton2, bouton3, bouton4, bouton5, bouton6, bouton7, bouton8, bouton9, boutadd, boutsous, boutmult, boutdiv, boutegal;
- String nombre1="", nombre2="";
- Float res;
- public Graphcalc()
- {
- super();
- setLayout(new FlowLayout());
- setTitle("Le Grec présente" );
- zone= new TextField(10); add(zone);
- Button bouton1 = new Button("1" ); add(bouton1); bouton1.addActionListener(this);
- Button bouton2 = new Button("2" ); add(bouton2); bouton2.addActionListener(this);
- Button bouton3 = new Button("3" ); add(bouton3); bouton3.addActionListener(this);
- Button bouton4 = new Button("4" ); add(bouton4); bouton4.addActionListener(this);
- Button bouton5 = new Button("5" ); add(bouton5); bouton5.addActionListener(this);
- Button bouton6 = new Button("6" ); add(bouton6); bouton6.addActionListener(this);
- Button bouton7 = new Button("7" ); add(bouton7); bouton7.addActionListener(this);
- Button bouton8 = new Button("8" ); add(bouton8); bouton8.addActionListener(this);
- Button bouton9 = new Button("9" ); add(bouton9); bouton9.addActionListener(this);
- Button bouton = new Button("." ); add(bouton); bouton.addActionListener(this);
- Button boutadd = new Button("+" ); add(boutadd); boutadd.addActionListener(this);
- Button boutsous = new Button("-" ); add(boutsous); boutsous.addActionListener(this);
- Button boutmult = new Button("*" ); add(boutmult); boutmult.addActionListener(this);
- Button boutdiv= new Button("/" ); add(boutdiv); boutdiv.addActionListener(this);
- Button boutegal = new Button("=" ); add(boutegal); boutegal.addActionListener(this);
- pack();
- setVisible(true);
- }
- public static void main(String[] args)
- {
- Graphcalc Fen;
- Fen = new Graphcalc();
- System.out.println(Fen);
- }
- public void actionPerformed(ActionEvent e)
- {
- Button boutemp=(Button)e.getSource();
- String nombre=boutemp.getLabel();
- String operator,aff2;
- Float res,nb1,nb2;
- if((nombre.equals("+" )) || (nombre.equals("-" )) || (nombre.equals("*" )) || (nombre.equals("/" )) || (nombre.equals("=" )))
- {
- if(nombre1.equals("" )) zone.setText("tapez un nombre" );
- else
- {
- if(nombre2.equals("" ))
- {
- if(nombre.equals("=" )) zone.setText(nombre);
- else
- {
- nombre2=nombre1;
- operator = nombre;
- }
- }
- else
- {
- if(operator.equals("+" ))
- {
- //calculatrice Calc = new calculatrice();
- nb1 = nb1.valueOf(nombre1);
- nb2 = nb2.valueOf(nombre2);
- res = (Float)nb1 + (Float)nb2;
- zone.setText(res.toString());
- }
- else if(operator.equals("-" ))
- {
- //calculatrice Calc = new calculatrice();
- nb1 = nb1.valueOf(nombre1);
- nb2 = nb2.valueOf(nombre2);
- res = (Float)nb1 - (Float)nb2;
- zone.setText(res.toString());
- }
- else if(operator.equals("*" ))
- {
- //calculatrice Calc = new calculatrice();
- nb1 = nb1.valueOf(nombre1);
- nb2 = nb2.valueOf(nombre2);
- res = (Float)nb1 * (Float)nb2;
- zone.setText(res.toString());
- }
- else if(operator.equals("/" ))
- {
- //calculatrice Calc = new calculatrice();
- nb1 = nb1.valueOf(nombre1);
- nb2 = nb2.valueOf(nombre2);
- res = (Float)nb1 / (Float)nb2;
- zone.setText(res.toString());
- }
- }
- }
- }
- else
- {
- String aff=nombre1 + nombre;
- nombre1=aff;
- zone.setText(aff);
- }
- }
- }
|
Ce problème survient donc aux lignes 71, 79, 87,95
Merci de me répondre si vous avez la moindre idée.
bonne soirée à tous |