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

Messages postés
49
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
26 novembre 2012
- - Dernière réponse : cs_esteller
Messages postés
49
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
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
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
278
3
Merci
Ou plutôt, tu ne l'ajoutes jamais au modèle.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 108 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
278
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
Statut
Membre
Dernière intervention
26 novembre 2012
0
Merci
merci mais je dois placer ça à quel endroit de mon code?
Commenter la réponse de cs_esteller
Messages postés
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
278
0
Merci
 try
        {
            jTable1.setTableModel(new DefaultTableModel());
            Class.forName("com.mysql.jdbc.Driver");
Commenter la réponse de cs_Julien39
Messages postés
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
278
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
Statut
Membre
Dernière intervention
26 novembre 2012
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
6449
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
278
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
Statut
Membre
Dernière intervention
26 novembre 2012
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.