Prbleme jtable

guns65 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
salut !! j'essai d'afficher ma base dans un jtable mais il m'affiche que la 5éme ligne dans le jtable !!

else if (var==bt3){

try
{
connection();
st=con.createStatement();
String req="select* from Fournisseur";
rs=st.executeQuery(req);
while(rs.next())
{
int j=0;
int i=0;

data[j][i]= rs.getString("id");
data[j][i+1]= rs.getString("nom");
data[j][i+2]= rs.getString("prenom");
data[j][i+3]= rs.getString("adresse");
data[j][i+4]= rs.getString("n° telephone");

j++;

}

TableColumn column = null;
for(int i=0;i<5 ; i++){
column= table.getColumnModel().getColumn(i);
column.setPreferredWidth(50);
}
}
catch(SQLException e3){e3.printStackTrace(); }
}

ci quelqu'un peut m'aider je serais tres reconnaissant !! merci :)
A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
j est toujours réinitialisé à 0 dans ton while ! Tu peux faire comme ceci :

for(int j=0; rs.next(); j++) 
{
    data[j][0] = rs.getString("id"); 
    data[j][1] = rs.getString("nom"); 
    data[j][2] = rs.getString("prenom"); 
    data[j][3] = rs.getString("adresse"); 
    data[j][4] = rs.getString("n° telephone"); 
}

Cependant, je t'invite à utiliser un TableModel, et en particulier DefaultTableModel qui permet d'ajouter des lignes plus simplement (et plus proprement) que modifier les données data[j][i] qui nécessite d'avoir au préalable initialiser data[][] avec une taille au départ qui peut s'avérer par la suite tantôt trop grande (et on a plein de lignes vides dans la JTable) tantôt trop petite et ça plante !

Un exemple ici : Raffraichir un Jtable
0
guns65 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
c'est réglé merci :) mais je veux actualiser mon jtable comment je fais!!
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
J'ai déjà anticipé cette question en te donnant des liens sur l'utilisation des TableModel et en particulier une discussion pour rafraîchir un JTable (ce qui se fait automatiquement si on utilise les Model)
0
guns65 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
avec ma méthode comment je fais parce que je doit effacer tout et recommencer !! désole :)
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
"je doit effacer tout et recommencer"
Ce ne serait pas forcément une mauvaise idée, puisque c'est pour faire mieux après ;-)

Il faudrait tester pour vérifier que l'adaptation est correcte mais sans tout changer ce serait quelque chose comme ceci :

String[] headers = {"id","nom","prenom","adresse","n° telephone"};
 
for (int i=0; rs.next(); i++)
for (int j=0; j<headers.length; j++)
    data[i][j] = rs.getString(headers[j]);

table.setModel(new DefaultTableModel(data,headers));
0