Faire des calculs en java

alibabapro Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
alibabapro Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je faire des calculs et enregistre dans une base de donnée en java.Exemple: faire une fonction somme qui additionne a chaque fois le montant saisie dans le JTextField.Merci!!!
A voir également:

2 réponses

ach32 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
 
Salut!
Montre-nous ce que tu as pour le moment afin qu'on puisse t'aider
0
alibabapro Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour voici mon code:
Je veux que lorsque l'utilisateur va remplir tous les champs,Au niveau de la variable montant(montcole=txtmo.getText() ), en fonction du montant saisie il affiche dans la variable objectif( objcol=txtob.getText()) çà génère automatiquement soit (atteint ou moyenne ou non atteint). Les calculs dont je parle, j’ai une variable total et je veux qu'a chaque saisie du montant ça part s'ajouter dans la variable total.Merci

private void btnaActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        String numcole=txtco.getText(),
                numcol=cmbco.getSelectedItem().toString(),
                nomcol=cmbno.getSelectedItem().toString(),
                prenomcol=cmbpr.getSelectedItem().toString(),              
                sectcol=cmbsec.getSelectedItem().toString(), 
                montcole=txtmo.getText(),
                objcol=txtob.getText();
        DateFormat df=new SimpleDateFormat("dd/MM/yyyy");
               String datecole=String.valueOf(df.format(txtdat.getDate()));
               
               try{
                   con=connexionbd.seconnecter();
                   st=con.createStatement();
                   st.executeUpdate("INSERT INTO collecte() VALUES('"+numcole+"','"+numcol+"','"+nomcol+"','"+prenomcol+"',"
                           + "'"+datecole+"','"+sectcol+"','"+montcole+"','"+objcol+"')");
                   
              JOptionPane.showMessageDialog(null,"Enregistrement Effectue");
        }catch(Exception e)
        {
           JOptionPane.showMessageDialog(null,"Connexion Echouee"+e.getMessage()); 
        }      
                         
                        
    }              


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122
 
Bonjour,

Si j'ai bien compris votre question, je suppose qu'il vous faut un objet JLabel pour afficher le totale, alors il faut commencer par un 0 :

JLable total = new JLable("0");


Dans le code du bouton et après l'insertion, il faut mettre à jour la valeur de la JLabel, mais elle contient des chaines de caractères et nous voulons un clacul sur des entiers, pour cela il suffit de convertir les chaines de caractères vers des entiers par la méthode : Integer.parseInt(). Cela donne un code du genre :

total.setText("" + (Integer.parseInt(total.getText()) + Integer.parseInt(txtmo.getText()));


Si vous voulez sauvegarder cette valeur dans un entier et de faire un Si...Sinon ça sera encore plus simple. Un entier dans votre classe :

int t = 0;


Dans la méthode ci-dessus, il faut ajouter la somme et faire un Si...Sinon :

t += Integer.parseInt(txtmo.getText());
if(t > 100)
    total.setText("atteint");
else
    total.setText("Pas encore");



Bon Courage.
0
alibabapro Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour! essayer d'appliquer vos suggessions mais voici l'eurreu qu'on me signal quand j'essaie d'enregistrer dans la base de donnee:connexion echouee column count dose'not match value at row 1.Merci!!

voici mon code:
private void btnaActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        String numcole=txtco.getText(),
                numcol=cmbco.getSelectedItem().toString(),
                nomcol=cmbno.getSelectedItem().toString(),
                prenomcol=cmbpr.getSelectedItem().toString(),              
                sectcol=cmbsec.getSelectedItem().toString(), 
                montcole=txtmo.getText(),
                objcol =JLabel.getText();
        DateFormat df=new SimpleDateFormat("dd/MM/yyyy");
               String datecole=String.valueOf(df.format(txtdat.getDate()));
               
               JLabel TCOLEJOUR = new JLabel("0");
                   TCOLEJOUR.setText(""+(Integer.parseInt(TCOLEJOUR.getText()) + Integer.parseInt(txtmo.getText())));
                int t = 0;
                t += Integer.parseInt(txtmo.getText());
            if(t > 100){
            TCOLEJOUR.setText("atteint");}
            else if(t==100){
                TCOLEJOUR.setText("Moyenne");
            } else { 
                TCOLEJOUR.setText("Non atteint");
                }
               
               try{
                   con=connexionbd.seconnecter();
                   st=con.createStatement();
                   st.executeUpdate("INSERT INTO collecte() VALUES('"+numcole+"','"+numcol+"','"+nomcol+"','"+prenomcol+"',"
                           + "'"+datecole+"','"+sectcol+"','"+montcole+"','"+objcol+"')");
                   
              JOptionPane.showMessageDialog(null,"Enregistrement Effectue");
        }catch(Exception e)
        {
           JOptionPane.showMessageDialog(null,"Connexion Echouee"+e.getMessage()); 
        }      
                         
                        
    }                                    

   
0
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122 > alibabapro Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

L'erreur est dans la requête SQL, il ne faut pas mettre les parenthèses après le nom de la table dans la requête INSERT si on ne veut pas spécifier des colonnes particulières, alors il suffit de les enlever :

st.executeUpdate("INSERT INTO collecte VALUES('"+numcole+"','"+numcol+"','"+nomcol+"','"+prenomcol+"',"+"'"+datecole+"','"+sectcol+"','"+montcole+"','"+objcol+"')");
0
alibabapro Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   > tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour! j'ai l'erreur mais ça je n'arrive pas à faire l'insertion, voici mon problème: Connexion echoueeIncorrect decimal value:'javax.swing.JLabel[0,0,0x0 invalid, alignementx=0.0,alignementy=0.0,border=javax.swing.plaf.synth.SynthBorder@26444b6a,flags=83886' for column TCOLEJOUR at row 1.

private void btnaActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        String numcole=txtco.getText(),
                numcol=cmbco.getSelectedItem().toString(),
                nomcol=cmbno.getSelectedItem().toString(),
                prenomcol=cmbpr.getSelectedItem().toString(),              
                sectcol=cmbsec.getSelectedItem().toString(), 
                montcole=txtmo.getText(),
                objcol =JLabel.getText();
        DateFormat df=new SimpleDateFormat("dd/MM/yyyy");
               String datecole=String.valueOf(df.format(txtdat.getDate()));
               
               JLabel TCOLEJOUR = new JLabel("0");
                   TCOLEJOUR.setText(""+(Integer.parseInt(TCOLEJOUR.getText()) + Integer.parseInt(txtmo.getText())));
                int t = 0;
                t += Integer.parseInt(txtmo.getText());
            if(t > 100){
            TCOLEJOUR.setText("atteint");}
            else if(t==100){
                TCOLEJOUR.setText("Moyenne");
            } else { 
                TCOLEJOUR.setText("Non atteint");
                }
               
               try{
                   con=connexionbd.seconnecter();
                   st=con.createStatement();
                   st.executeUpdate("INSERT INTO collecte VALUES('"+numcole+"','"+numcol+"','"+nomcol+"',"
                           + "'"+prenomcol+"',"+"'"+datecole+"','"+sectcol+"','"+montcole+"','"+objcol+"','"+TCOLEJOUR+"')");
                   
              JOptionPane.showMessageDialog(null,"Enregistrement Effectue");
        }catch(Exception e)
        {
           JOptionPane.showMessageDialog(null,"Connexion Echouee"+e.getMessage()); 
        }      
                         
                        
    }       
merci de bien vouloir m'aider!
0
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122 > alibabapro Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

Il se peut qua l'un des champs de votre table est déclaré comme un entier. A ce que je vois de votre requête, vous avez mis toutes les valeurs entre les quotes simples ' ', pour le SGBD, cela veut dire que la donnée est une chaîne de caractères, alors il faut enlever ces quotes pour les colonnes de type numérique.
0
alibabapro Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   > tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour! j'ai essaye d'enlever les cotte ' ' Pouvez vous revoir mon code, même avec la sommation n'est se fait pas.Merci!!
private void btnaActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        String numcole=txtco.getText(),
                numcol=cmbco.getSelectedItem().toString(),
                nomcol=cmbno.getSelectedItem().toString(),
                prenomcol=cmbpr.getSelectedItem().toString(),              
                sectcol=cmbsec.getSelectedItem().toString(), 
                montcole=txtmo.getText(),
                objcol =JLabel.getText();
        DateFormat df=new SimpleDateFormat("dd/MM/yyyy");
               String datecole=String.valueOf(df.format(txtdat.getDate()));
               
               JLabel TCOLEJOUR = new JLabel("0");
                   TCOLEJOUR.setText(""+(Integer.parseInt(TCOLEJOUR.getText()) + Integer.parseInt(txtmo.getText())));
                int t = 0;
                t += Integer.parseInt(txtmo.getText());
            if(t > 100){
            TCOLEJOUR.setText("atteint");}
            else if(t==100){
                TCOLEJOUR.setText("Moyenne");
            } else { 
                TCOLEJOUR.setText("Non atteint");
                }
               
               try{
                   con=connexionbd.seconnecter();
                   st=con.createStatement();
                   st.executeUpdate("INSERT INTO collecte VALUES('"+numcole+"','"+numcol+"','"+nomcol+"',"
                           + "'"+prenomcol+"',"+"'"+datecole+"','"+sectcol+"','"+montcole+"','"+objcol+"','"+TCOLEJOUR+"')");
                   
              JOptionPane.showMessageDialog(null,"Enregistrement Effectue");
        }catch(Exception e)
        {
           JOptionPane.showMessageDialog(null,"Connexion Echouee"+e.getMessage()); 
        }      
                         
                        
    }    
0