Prbleme jtable

Fermé
guns65 Messages postés 32 Date d'inscription mardi 28 septembre 2010 Statut Membre Dernière intervention 26 février 2014 - 31 déc. 2012 à 01:34
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 31 déc. 2012 à 03:21
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 :)

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
31 déc. 2012 à 02:06
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 mardi 28 septembre 2010 Statut Membre Dernière intervention 26 février 2014
31 déc. 2012 à 02:30
c'est réglé merci :) mais je veux actualiser mon jtable comment je fais!!
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
31 déc. 2012 à 02:34
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 mardi 28 septembre 2010 Statut Membre Dernière intervention 26 février 2014
31 déc. 2012 à 02:37
avec ma méthode comment je fais parce que je doit effacer tout et recommencer !! désole :)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
31 déc. 2012 à 03:21
"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