Problème d'affichage de ma JTable après une requette SQL

Résolu
baratribord Messages postés 44 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 30 mai 2008 - 16 mai 2008 à 10:38
fadouahassen22 Messages postés 15 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 25 août 2010 - 3 août 2010 à 15:23
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

nosferaltu0 Messages postés 36 Date d'inscription mardi 6 mai 2008 Statut Membre Dernière intervention 6 juin 2008
16 mai 2008 à 12:15
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.
3
fadouahassen22 Messages postés 15 Date d'inscription jeudi 8 juillet 2010 Statut Membre Dernière intervention 25 août 2010 1
3 août 2010 à 15:23
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();
}
/******************************/
0