Affichage des éléments dans une jtable [Résolu]

Messages postés
49
Date d'inscription
mardi 8 septembre 2009
Dernière intervention
26 novembre 2012
- 23 nov. 2012 à 14:28 - Dernière réponse :
Messages postés
49
Date d'inscription
mardi 8 septembre 2009
Dernière intervention
26 novembre 2012
- 23 nov. 2012 à 17:58
bjr tout le monde.j'ai une jtable ou j'affiche la liste des clients de ma base de donnée à partir du bouton afficher.mais a chaque fois que je clique sur afficher au lieu qu'il actualise ma jtable mais enregistrements se double.c'est à dire que les meme enregistrements s'affichent plusieurs fois.voici mon code:
public void chargerTable(){
     Connection cnx=null;
        Statement st=null;
        ResultSet rs = null;
        String exo=null;
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            String url="jdbc:mysql://localhost:3306/location";
            cnx=DriverManager.getConnection(url,"root","pascalineclaver");
            st=cnx.createStatement();
            String rq="select * from client";
            rs= st.executeQuery(rq);
            //JOptionPane.showMessageDialog(null,"compte enrégistré");
            rs.last();
            int nb=rs.getRow();
            rs.beforeFirst();
            while(rs.next())
            {
                if(nb>0)
                {
             ((DefaultTableModel) jTable1.getModel()).addRow(new Object[]{null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null});
              int nbligne= jTable1.getRowCount();

              //jTable1.setValueAt(rs.getString("id_client"),nbligne-1,0);
             // 
                jTable1.setValueAt(rs.getString("civilite"),nbligne-1,0);
              jTable1.setValueAt(rs.getString("nom_client"),nbligne-1,1);
              jTable1.setValueAt(rs.getString("prenom_client"),nbligne-1,2);
              jTable1.setValueAt(rs.getString("adresse_client"),nbligne-1,3);
              jTable1.setValueAt(rs.getString("ville_client"),nbligne-1,4);
              jTable1.setValueAt(rs.getString("telephone_client"),nbligne-1,5);
              jTable1.setValueAt(rs.getString("email_client"),nbligne-1,6);
              jTable1.setValueAt(rs.getString("datnais_client"),nbligne-1,7);
              jTable1.setValueAt(rs.getString("lieunais"),nbligne-1,8);
              jTable1.setValueAt(rs.getString("datlivraisonpermis_client"),nbligne-1,9);
              jTable1.setValueAt(rs.getString("numpermis_client"),nbligne-1,10);
              //
               jTable1.setValueAt(rs.getString("lieulivraisonpermis_client"),nbligne-1,11);
              jTable1.setValueAt(rs.getString("numcnib"),nbligne-1,12);
               jTable1.setValueAt(rs.getString("datetablissementcnib"),nbligne-1,13);
              jTable1.setValueAt(rs.getString("lieuetablissementcnib"),nbligne-1,14);
            
              
              jTable1.setValueAt(rs.getString("Societe"),nbligne-1,15);
              jTable1.setValueAt(rs.getString("id_client"),nbligne-1,16);
               
             
             
                 }
                 else
                {
                JOptionPane.showMessageDialog(null,"Aucun enregistrement trouvé");
               this.setVisible(true);
                 }

                        }
        }
        catch(ClassNotFoundException e)
        {
            JOptionPane.showMessageDialog(null,"Mauvais Driver","Erreur", JOptionPane.ERROR_MESSAGE);

        }
        catch(SQLException xx)
        {
            JOptionPane.showMessageDialog(null,"Echec enregistrement!! Veuillez vérifier toute les zonee de texte", "Erreur",JOptionPane.ERROR_MESSAGE);

        }
        finally
        {
            if (st!=null)
            {
                try
                {
                    st.close();
                }
                catch(SQLException e1)
                {
                    e1.printStackTrace();
                }
            }

            if (cnx!=null)

            {
                try
                {
                    cnx.close();
                }
                catch(SQLException e2)
                {
                    e2.printStackTrace();
                }

        }
    }
        
}
private void cmdafficherActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        chargerTable();
}                                           
    


aidez moi
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
- 23 nov. 2012 à 17:46
3
Merci
Ou plutôt, tu ne l'ajoutes jamais au modèle.

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
- 23 nov. 2012 à 14:38
0
Merci
Salut,

Normal, tu né réinitialises jamais le modele.
Commences par faire un jTable1.setTableModel(new DefaultTableModel()); et ca marchera.
Commenter la réponse de cs_Julien39
Messages postés
49
Date d'inscription
mardi 8 septembre 2009
Dernière intervention
26 novembre 2012
- 23 nov. 2012 à 14:56
0
Merci
merci mais je dois placer ça à quel endroit de mon code?
Commenter la réponse de cs_esteller
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
- 23 nov. 2012 à 17:16
0
Merci
 try
        {
            jTable1.setTableModel(new DefaultTableModel());
            Class.forName("com.mysql.jdbc.Driver");
Commenter la réponse de cs_Julien39
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
- 23 nov. 2012 à 17:17
0
Merci
Et à la fin :

              jTable1.setValueAt(rs.getString("Societe"),nbligne-1,15);
              jTable1.setValueAt(rs.getString("id_client"),nbligne-1,16);
              jTable1.repaint();
Commenter la réponse de cs_Julien39
Messages postés
49
Date d'inscription
mardi 8 septembre 2009
Dernière intervention
26 novembre 2012
- 23 nov. 2012 à 17:25
0
Merci
merci c'est gentil.est ce qu'on peut rendre une colonne d'une jtable invisible?
Commenter la réponse de cs_esteller
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
- 23 nov. 2012 à 17:45
0
Merci
Tu la supprime du modèle...
Commenter la réponse de cs_Julien39
Messages postés
49
Date d'inscription
mardi 8 septembre 2009
Dernière intervention
26 novembre 2012
- 23 nov. 2012 à 17:58
0
Merci
merci beaucoup julien39
Commenter la réponse de cs_esteller

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.