//Tu fais une boucle de 1 à 1 : le for est donc inutile //Il faut aller jusqu'à colomnCount for(i=1; i<=1; i++) { String ch=resultRequete.getString(i); ligne.add(ch); } tabLignes.add(ligne);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionpackage gestionintendance; import java.awt.BorderLayout; import java.awt.Dimension; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; /** * * @author ggeffray * @version 1.0b * */ //class pour afficher la liste des produits public class tabProduit extends JFrame { JTable table;//instancition de JTable pour le remplissage des données a partir de la BDD Statement statement;//creation du statement à partir de la chaine de connexion pour les requetes ResultSet resultRequete;//conteneur du resultat de la requete excutée public tabProduit() { table = remplirTable();//la table sera initialisée par la liste des produits envoyée par la fct 'remplirTable()' table.setPreferredScrollableViewportSize(new Dimension(500,120));//prendre la dimension de la table // Un panneau, placé dans la fenêtre JScrollPane panneau = new JScrollPane(table);//mettre la table dans ascenceur getContentPane().add(panneau, BorderLayout.CENTER);//centraliser le panneau dans la fenetre this.pack(); this.setLocation(100, 100); this.setVisible(true); } /** Requête et résultats dans une JTable */ JTable remplirTable() { Vector tabLignes=new Vector(), nomCols=new Vector(); int i; try { String requeteMysql = "Select RefProduit, LibProduit, PrixHTProduit, PrixTTCProduit, PoidsProduit, NomFourn, NomCateg " + "From Produit, Categorie, Fournisseur " + "Where Produit.Nocateg = Categorie.NoCateg " + "And Produit.NoFourn = Fournisseur.NoFourn";//chaine contenant la requete a executée statement = (Statement) new BDD().conn.createStatement();//creation du statement a partir de la chaine de connexion qui est placée dans la classe de connexion au MYsql resultRequete = (ResultSet) statement.executeQuery(requeteMysql);//excuter la requete et la mettre dans une variabale ResulatSet // Extraire noms des colonnes; les placer dans Vector nomCols ResultSetMetaData md = resultRequete.getMetaData(); nomCols = new Vector(); for( i=1; i<=md.getColumnCount (); i++) { nomCols.add( md.getColumnLabel(i)); System.out.println(nomCols); // Mémoriser le résultat dans la JTable while( resultRequete.next()) { //placer les valeurs dans Vector ligne Vector ligne=new Vector(); for(i=1; i<=3; i++) { String ch=resultRequete.getString(i); ligne.add(ch); } tabLignes.add(ligne); } } } catch(Exception e) { System.out.print("erreur1 "+e.getMessage());//récuperer le message d'erreur en cas d'erreur } return new JTable(tabLignes,nomCols);//type de retour qui initialise le JTable par la liste des vecteur envoyées remplis des tables }