Calcul entre variables de types différents

Fermé
mellecode Messages postés 1 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 30 janvier 2015 - Modifié par KX le 30/01/2015 à 07:35
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 30 janv. 2015 à 07:49
Bonjour a tous je debute dans la programmation et j'aimerai savoir comment effectuer un calcul entre variable de types différents voici mon code svp dites moi ou j'ai péché. merci d'avance.

import javax.swing.*;  
import javax.swing.JFrame; 
import java.awt.*;
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener;
 
public class Interf2 extends JFrame
{   
 public JButton bouton;
 public JTextField montant;
 public JTextField taux;
 public JTextField ans;
 public JTextField mfinal;

   public Interf2()
   {  
  super();  
  build();  //On initialise notre fenêtre  
   } 
   
   private void build()
   {  
  //On donne un titre à l'application 
  setTitle("");
  //On donne une taille à notre fenêtre  
  setSize(300,300);  
  //On centre la fenêtre sur l'écran  
  setLocationRelativeTo(null);  
  //On interdit la redimensionnement de la fenêtre  
  setResizable(true);
  //On dit à l'application de se fermer lors du clic sur la croix 
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  setContentPane(buildContentPane());
   }  


  private JPanel buildContentPane()
  {  
   JPanel panel = new JPanel();  
   JPanel pan = new JPanel();  
   JPanel pane = new JPanel();  
   JPanel panne = new JPanel();  
   pane.setLayout(new FlowLayout());
   pan.setLayout(new FlowLayout());   
   panne.setLayout(new FlowLayout());   
   panel.setLayout(new GridLayout(3,3));
   JLabel label1 = new JLabel("Montant de depart");
   JLabel label2 = new JLabel("Taux du placement");
   JLabel label3 = new JLabel("Nombres d'annees");
   JLabel label4 = new JLabel("Montant final");
   
   
   montant = new JTextField(15);
   montant.addActionListener(new ActionListener()
   { 
    public void actionPerformed(ActionEvent eu)
    { 
     String montantconvert = montant.getText();
     //float convert= new float(montantconvert);
     float convertmont= new Float(montantconvert).floatValue();
     String mont= new Float(convertmont).toString();
     
    }
   });
   
   taux= new JTextField(10);
   taux.addActionListener(new ActionListener()
   { 
    public void actionPerformed(ActionEvent e)
    { 
     String tauxconvert= taux.getText();
     float convertaux= new Float(tauxconvert).floatValue(); 
    }
   });
   
   ans= new JTextField(10);
   
   ans.addActionListener(new ActionListener()
   { 
    public void actionPerformed(ActionEvent ea)
    { 
     String ansconvert = ans.getText();
     int convertannees= new Integer(ansconvert).intValue();   
    }
   });
   
   mfinal= new JTextField(20);
   
   JButton bouton = new JButton("OK");  
   
   bouton.addActionListener(new ActionListener()
   { 
    public void actionPerformed(ActionEvent b)
    { 
     float total= convert + convertannees + convertaux;  
    }
   });
   
   JButton bouton1 = new JButton("Details");  
   pane.add(label1);
   pane.add(montant);
   pane.add(label2);
   pane.add(taux);
   pane.add(label3);
   pane.add(ans);
   pan.add(bouton);
   pan.add(bouton1);
   panne.add(label4);
   panne.add(mfinal); 
   panel.add(pane);
   panel.add(pan);
   panel.add(panne);
   return panel;  
   
  } 

}

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
30 janv. 2015 à 07:49
Bonjour,

Ton problème ce n'est pas vraiment que les variables soient de types différents, mais plutôt qu'elles ne sont pas accessibles.

Quand une variable est déclarée dans un bloc d'accolade, elle disparaît à la fin de ce bloc.

Exemple :

public void actionPerformed(ActionEvent e)
{ 
     String tauxconvert= taux.getText();
     float convertaux= new Float(tauxconvert).floatValue(); 
}

La variable
convertaux
est créée, affectée, mais immédiatement détruite, elle ne peux plus être utilisée plus loin.

Du coup, il te manque des informations ici :

public void actionPerformed(ActionEvent b)
{ 
     float total= convert + convertannees + convertaux;  
}

En effet, aucune des trois valeurs
convert
,
convertannees
ou
convertaux
n'existent.

Dans ton cas, il faudrait mettre tous tes calculs au même endroits : lié au bouton OK.

bouton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent b) {
        String montantconvert = montant.getText();
        // float convert= new float(montantconvert);
        float convertmont = new Float(montantconvert).floatValue();
        String mont = new Float(convertmont).toString();
        String tauxconvert = taux.getText();
        float convertaux = new Float(tauxconvert).floatValue();
        String ansconvert = ans.getText();
        int convertannees = new Integer(ansconvert).intValue();
        float total = convertmont + convertannees + convertaux;
        mfinal.setText(String.valueOf(total));
    }
});
0