Faire des calculs en java

Fermé
alibabapro Messages postés 23 Date d'inscription lundi 18 avril 2016 Statut Membre Dernière intervention 23 novembre 2016 - 10 nov. 2016 à 13:40
alibabapro Messages postés 23 Date d'inscription lundi 18 avril 2016 Statut Membre Dernière intervention 23 novembre 2016 - 23 nov. 2016 à 12:16
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 mercredi 20 avril 2016 Statut Membre Dernière intervention 19 septembre 2017
11 nov. 2016 à 08:55
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 lundi 18 avril 2016 Statut Membre Dernière intervention 23 novembre 2016
Modifié par baladur13 le 15/11/2016 à 21:56
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 jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
13 nov. 2016 à 22:22
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 lundi 18 avril 2016 Statut Membre Dernière intervention 23 novembre 2016
Modifié par baladur13 le 15/11/2016 à 21:57
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 jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120 > alibabapro Messages postés 23 Date d'inscription lundi 18 avril 2016 Statut Membre Dernière intervention 23 novembre 2016
15 nov. 2016 à 21:51
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 lundi 18 avril 2016 Statut Membre Dernière intervention 23 novembre 2016 > tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022
Modifié par alibabapro le 16/11/2016 à 13:26
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 jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120 > alibabapro Messages postés 23 Date d'inscription lundi 18 avril 2016 Statut Membre Dernière intervention 23 novembre 2016
Modifié par tarek_dotzero le 16/11/2016 à 23:05
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 lundi 18 avril 2016 Statut Membre Dernière intervention 23 novembre 2016 > tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022
23 nov. 2016 à 12:16
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