Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1702 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Pb typage étrange....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pb typage étrange....

n°1650586
Grehunter
Posté le 28-11-2007 à 23:05:08  profilanswer
 

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 :
  1. import java.awt.event.*;
  2. import java.awt.*;
  3. public class Graphcalc extends Frame implements ActionListener
  4. {
  5. TextField zone;
  6. Button bouton, bouton1, bouton2, bouton3, bouton4, bouton5, bouton6, bouton7, bouton8, bouton9, boutadd, boutsous, boutmult, boutdiv, boutegal;
  7. String nombre1="", nombre2="";
  8. Float res;
  9. public Graphcalc()
  10. {
  11.  super();
  12.  setLayout(new FlowLayout());
  13.  setTitle("Le Grec présente" );
  14.  zone= new TextField(10); add(zone);
  15.  Button bouton1 = new Button("1" ); add(bouton1); bouton1.addActionListener(this);
  16.  Button bouton2 = new Button("2" ); add(bouton2); bouton2.addActionListener(this);
  17.  Button bouton3 = new Button("3" ); add(bouton3); bouton3.addActionListener(this);
  18.  Button bouton4 = new Button("4" ); add(bouton4); bouton4.addActionListener(this);
  19.  Button bouton5 = new Button("5" ); add(bouton5); bouton5.addActionListener(this);
  20.  Button bouton6 = new Button("6" ); add(bouton6); bouton6.addActionListener(this);
  21.  Button bouton7 = new Button("7" ); add(bouton7); bouton7.addActionListener(this);
  22.  Button bouton8 = new Button("8" ); add(bouton8); bouton8.addActionListener(this);
  23.  Button bouton9 = new Button("9" ); add(bouton9); bouton9.addActionListener(this);
  24.  Button bouton = new Button("." );  add(bouton);  bouton.addActionListener(this);
  25.  Button boutadd = new Button("+" ); add(boutadd); boutadd.addActionListener(this);
  26.  Button boutsous = new Button("-" ); add(boutsous); boutsous.addActionListener(this);
  27.  Button boutmult = new Button("*" ); add(boutmult); boutmult.addActionListener(this);
  28.  Button boutdiv= new Button("/" );   add(boutdiv); boutdiv.addActionListener(this);
  29.  Button boutegal = new Button("=" ); add(boutegal); boutegal.addActionListener(this);
  30.  pack();
  31.  setVisible(true);
  32. }
  33. public static void main(String[] args)
  34. {
  35.  Graphcalc Fen;
  36.  Fen = new Graphcalc();
  37.  System.out.println(Fen);
  38. }
  39. public void actionPerformed(ActionEvent e)
  40. {
  41.  Button boutemp=(Button)e.getSource();
  42.  String nombre=boutemp.getLabel();
  43.  String operator,aff2;
  44.  Float res,nb1,nb2;
  45.  if((nombre.equals("+" )) || (nombre.equals("-" )) || (nombre.equals("*" )) || (nombre.equals("/" )) || (nombre.equals("=" )))
  46.  {
  47.   if(nombre1.equals("" )) zone.setText("tapez un nombre" );
  48.   else
  49.   {
  50.    if(nombre2.equals("" ))
  51.    {
  52.     if(nombre.equals("=" )) zone.setText(nombre);
  53.     else
  54.     {
  55.      nombre2=nombre1;
  56.      operator = nombre;
  57.     }
  58.    }
  59.    else
  60.    {
  61.     if(operator.equals("+" ))
  62.     {
  63.      //calculatrice Calc = new calculatrice();
  64.      nb1 = nb1.valueOf(nombre1);
  65.      nb2 = nb2.valueOf(nombre2);
  66.      res = (Float)nb1 + (Float)nb2;
  67.      zone.setText(res.toString());
  68.     }
  69.     else if(operator.equals("-" ))
  70.     {
  71.      //calculatrice Calc = new calculatrice();
  72.      nb1 = nb1.valueOf(nombre1);
  73.      nb2 = nb2.valueOf(nombre2);
  74.      res = (Float)nb1 - (Float)nb2;
  75.      zone.setText(res.toString());
  76.     }
  77.     else if(operator.equals("*" ))
  78.     {
  79.      //calculatrice Calc = new calculatrice();
  80.      nb1 = nb1.valueOf(nombre1);
  81.      nb2 = nb2.valueOf(nombre2);
  82.      res = (Float)nb1 * (Float)nb2;
  83.      zone.setText(res.toString());
  84.     }
  85.     else if(operator.equals("/" ))
  86.     {
  87.      //calculatrice Calc = new calculatrice();
  88.      nb1 = nb1.valueOf(nombre1);
  89.      nb2 = nb2.valueOf(nombre2);
  90.      res = (Float)nb1 / (Float)nb2;
  91.      zone.setText(res.toString());
  92.     }
  93.    }
  94.   }
  95.  }
  96.  else
  97.  {
  98.   String aff=nombre1 + nombre;
  99.   nombre1=aff;
  100.   zone.setText(aff);
  101.  }
  102. }
  103. }


 
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

mood
Publicité
Posté le 28-11-2007 à 23:05:08  profilanswer
 

n°1650588
kadreg
profil: Utilisateur
Posté le 28-11-2007 à 23:07:49  profilanswer
 

Float et float, ce n'est pas la même chose :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1650589
Grehunter
Posté le 28-11-2007 à 23:09:44  profilanswer
 

kadreg a écrit :

Float et float, ce n'est pas la même chose :o


 
ok, autant pour moi, je disais donc Float...
le fait est que toutes mes variables sont en Float et le pb de typage est tjr présent

n°1650594
kadreg
profil: Utilisateur
Posté le 28-11-2007 à 23:18:19  profilanswer
 

Mais pour Float (en fait java.lang.float), il y a pas d'opérateur + de défini, cet opérateur existe pour le type float :)
 
(accessoirement, ce n'est pas interdit d'initialiser nb1, nb2 et operator :o )


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1650597
Grehunter
Posté le 28-11-2007 à 23:23:34  profilanswer
 

kadreg a écrit :

Mais pour Float (en fait java.lang.float), il y a pas d'opérateur + de défini, cet opérateur existe pour le type float :)
 
(accessoirement, ce n'est pas interdit d'initialiser nb1, nb2 et operator :o )


 
 
ok je comprend ce que tu veux dire, seulement je viens de changer donc mes types en float et utiliser un parseFloat au lieu
 de valueOf (pour renvoyer un float et non pas un Float), et maintenant je reçois comme erreur float cannot be dereferenced
?????

n°1650598
kadreg
profil: Utilisateur
Posté le 28-11-2007 à 23:26:22  profilanswer
 

c'est ta syntaxe qui es pas bonne :o Une méthode statique, comme valueOf et parse Float, doivent s'appeler sur la classe, et non sur une instance. Exemple :  
     nb1 = Float.parseFloat(nombre1);


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1650600
Grehunter
Posté le 28-11-2007 à 23:31:51  profilanswer
 

kadreg a écrit :

c'est ta syntaxe qui es pas bonne :o Une méthode statique, comme valueOf et parse Float, doivent s'appeler sur la classe, et non sur une instance. Exemple :  
     nb1 = Float.parseFloat(nombre1);


 
ahhh, effectivement, ça m'apprendra à relire mes cours tiens...
cependant l'erreur est persistante
dsl d'etre chiant mais ça me prend vraiment la tête et ça me fatigue là.

n°1650629
bapho13
Usager usant
Posté le 29-11-2007 à 06:19:43  profilanswer
 

Grehunter a écrit :


erreur float cannot be dereferenced


 
Cela signifie que tu tentes d'utiliser une de tes variables comme si elle était un objet alors que float est un type de base.
 
Tu as du te tromper puisque tu utilises la méthode res.toString()
res est ici un float utilisé comme un Object (implicitement: un Float)
 
Poste le code problématique ou met à jour celui que tu as déja posté, parce qu'on ne peux pas aider sans avoir le probleme sous les yeux.


Message édité par bapho13 le 29-11-2007 à 06:22:33

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Pb typage étrange....

 

Sujets relatifs
Un truc étrange... Différence entre Windows et Linux[VC++ et MYSQL++] Erreur etrange ordi dépendante...
Pb de menu déroulant étrange sous IE6Typage strict pour parametres de fonction : question sur cas précis
N00b perl, problème étrangeTypage d'un pointeur "void *"
[Résolu] Problème polymorphisme et sous typageTypage en PHP POO
Temps reel / WinXP, comportement etrangeFichier XML et typage de données
Plus de sujets relatifs à : Pb typage étrange....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR