Problème affichage JTable

Résolu
floflo69290 Messages postés 16 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 25 juin 2009 - 26 mai 2009 à 12:10
floflo69290 Messages postés 16 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 25 juin 2009 - 29 mai 2009 à 13:42
Bonjour,

J'ai une problème d'affichage de mon JTable.
Dans une classe je récupère mes informations sur la table client :

public static ResultSet getAll()
       {
           Bd connexion = new Bd();
           ResultSet rs = null;
           try{
               rs = (ResultSet) connexion.execQuery("select * from client");
                          }
           catch(Exception e){
                System.out.println("Erreur de chargement de l'élement " + e);
           }
           return rs;          
       }

Dans mon autre classe je veux l'afficher dans un JTable.
Mon problème est que je peux afficher une valeur en dure (ma valeur "toto") mais pas ma valeur récupéré de ma base de données :

    public TableClient() {       
     RecupClient element = new RecupClient();
     table = new JTable();

     DefaultTableModel model = new DefaultTableModel();
     JTable table = new JTable(model);
     
     model.addColumn("Colonne  nom");
    // ResultSet rs = element.getAll(); // récupération des données de la base
    // String nom = rs.getString("Nom");
     // Création de la première ligne
     model.insertRow(0, new Object[] {"toto"});
        
        JFrame f = new JFrame();
        f.setSize(300, 300);
        f.add(new JScrollPane(table));
        f.setVisible(true);
}

Merci de votre aide.
Flo.

2 réponses

floflo69290 Messages postés 16 Date d'inscription jeudi 25 juin 2009 Statut Membre Dernière intervention 25 juin 2009 1
29 mai 2009 à 13:42
C'est bon, j'ai trouvé la solution, merci.

pour info :

public TableClient() {       
         RecupClient element = new RecupClient();
         DefaultTableModel model = new DefaultTableModel();
         //On initialise la table avec le model        
         table = new JTable(model);
        
         model.addColumn("Id");
         model.addColumn("Civilité");
         model.addColumn("Nom");
         model.addColumn("Prenom");
         model.addColumn("Adresse");
         model.addColumn("Code postal");
         model.addColumn("Ville");
         model.addColumn("Tel");
         model.addColumn("Adresse mail");
         model.addColumn("Profession");
         model.addColumn("Société");
         model.addColumn("Responsable");
         //try pour exception SQL
        try{
         //on récupère tous les clients dans un resultset
         ResultSet rs = element.getAll();
         //On parcours les lignes du resultset
         while(rs.next()){
             //On insert la ligne en court dans le tableau. Pour insérer dans l'ordre des ID, un order by dans la requete fera l'affaire
             //Penser a rendre les lignes non éditables
             model.insertRow(0, new Object[] {rs.getInt("idClient"),
                     rs.getString("Civilite"),
                     rs.getString("Nom"),
                     rs.getString("Prenom"),
                     rs.getString("Adresse"),
                     rs.getString("CP"),
                     rs.getString("Ville"),
                     rs.getString("Tel"),
                     rs.getString("AdresseMail"),
                     rs.getString("Profession"),
                     rs.getString("Societe"),
                     rs.getString("Responsable"),});
         }
        }catch(Exception e){
            System.out.println("Erreur");
        }
    }
3
manlap Messages postés 17 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 juin 2010
29 mai 2009 à 11:52
Bonjour,

Il faut que tu boucles sur ton ResultSet rs et que pour chaque valeur tu l'insères dans ton model

int i = 0;
while (rs.next()) {
   String [] valeur = new String[1];
   valeur[0] = rs.getString("Nom");
   model.insertRow(i++, valeur);
}

 
0
Rejoignez-nous