Problème d'affichage de ma JTable après une requette SQL [Résolu]

Signaler
Messages postés
44
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
30 mai 2008
-
fadouahassen22
Messages postés
15
Date d'inscription
jeudi 8 juillet 2010
Statut
Membre
Dernière intervention
25 août 2010
-
Bonjour,

J'ai écrit un programme qui affiche dans un JTable les enregistrements de ma base de données.
A cette JTable j'ai rajouté dans mon ArrayList une colonne supprimé affichant une case à cocher.
Ensuite je renvois à la fenêtre principale ma collection :

 public List<Object[]> updateModel(ResultSet rs) throws SQLException {
....
return rowValues_;
}

Lorsque j'appuie sur le bouton "supprimer", je parcours mon tableau à la recherche des cases cochées puis je supprime les enregistrements de la table. A ce niveau là j'ai des cases à cocher qui trainent.

Pour finir je fais un SELECT * FROM pour tout réafficher via updateModel :

            ResultSet resultat = instruction.executeQuery("SELECT * FROM data;");
            ResultSetTableModel tableModel = new ResultSetTableModel();
            Fen.rowValues_ = tableModel.updateModel(resultat);
            JTable table = new JTable(tableModel);
            JScrollPane JSP = new JScrollPane(table);
            Fen.getContentPane().add(JSP, BorderLayout.CENTER);
            Fen.pan.add(Fen.supp);
            Fen.validate();

Lorsque que je redimmenssionne ma fenetre, les anciens enregistrements sont encore dans ma fenetre ??

Est-ce dû à




Fen.getContentPane().add(JSP, BorderLayout.CENTER); qui rajoute au panel de ma frame mes données ou à une mauvaise gestion de ma mémoire ?

2 réponses

Messages postés
36
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
6 juin 2008

Si tu veux ajouter un composant à la place d'un autre il faut avant que tu supprime le composant qui etait present avec la methode remove().
Oubli pas de faire un repaint() s'il n'est pas fait automatiquement.
Messages postés
15
Date d'inscription
jeudi 8 juillet 2010
Statut
Membre
Dernière intervention
25 août 2010

bonjour,
je veux afficher les données ds ma base dans un JTable.
le pb c'est qu'on m'affiche qu'une seule ligne toujours. je ne trouve pas la afille. merci de me corriger si possible ce que j'ai écris ci dessous.

@+




/******************************/
try {

String sqlst= "SELECT * FROM user_table";
PreparedStatement state = connect.getInstance().prepareStatement(sqlst);
ResultSet res = state.executeQuery(sqlst);
ResultSetMetaData meta = res.getMetaData();

Object[] column = new Object[meta.getColumnCount()];
for(int i = 1 ; i <= meta.getColumnCount(); i++){
column[i-1] = meta.getColumnName(i);
}

//get row count//
res.last();
int rowCount = res.getRow();
Object[][] donnees = new Object[res.getRow()][meta.getColumnCount()];

//restart
res.beforeFirst();
for (int j=1; j<=rowCount;j++){
while(res.next()){
for(int i = 1 ; i < meta.getColumnCount(); i++){
String dn=res.getObject(i+1).toString();
table.setValueAt(dn,j-1, i-1);

}}}
res.close();
state.close();

}
catch (Exception ex) {
ex.printStackTrace();
}
/******************************/