Actualiser jtable

abdellah1987 Messages postés 6 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 14 juin 2011 - 13 juin 2011 à 22:42
abdellah1987 Messages postés 6 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 14 juin 2011 - 14 juin 2011 à 23:00
Bonjour,
Je programme en java.
J'ai un JTable qui contient des données chargé de la base de données si je clic sur le boutton "supprimer" les lignes séléctionnées du Jtable sont supprimés de la base mais elle ne sont pas supprimé du JTable (sur l'inteface) sauf si je fait le run une autre fois (c'est évident).De même pour la modification ou l'ajout.
Comment doit je faire pour??

4 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
14 juin 2011 à 08:52
Tu as peut être oublié un repaint après la suppression ?

Sans voir le code, c'est difficile...
0
abdellah1987 Messages postés 6 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 14 juin 2011
14 juin 2011 à 17:48
c'est le model du tableau
public class TableModel extends AbstractTableModel {

private ExecuteQuerySQL executeQuery;
private ResultSet rs;

public TableModel(String query) throws SQLException, ClassNotFoundException {
executeQuery = new ExecuteQuerySQL(query);
rs = executeQuery.getResultSet();
}

public ExecuteQuerySQL getExecuteQuery() {
return executeQuery;
}

public ResultSet getRs() {
return rs;
}

@Override
public int getRowCount() {
int i = 0;
try {

rs.last();
i = rs.getRow();

} catch (SQLException ex) {
Logger.getLogger(TableModel.class.getName()).log(Level.SEVERE, null, ex);
}
return i;
}

@Override
public int getColumnCount() {
int i = 0;
try {

i = rs.getMetaData().getColumnCount();
} catch (SQLException ex) {
Logger.getLogger(TableModel.class.getName()).log(Level.SEVERE, null, ex);
}
return i;
}

public Object getValueAt(int rowIndex, int columnIndex) {
Object ob = null;
try {

rs.absolute(rowIndex + 1);
ob = rs.getObject(columnIndex + 1);

} catch (SQLException ex) {
Logger.getLogger(TableModel.class.getName()).log(Level.SEVERE, null, ex);
}
return ob;
}

@Override
public String getColumnName(int column) {
try {
return rs.getMetaData().getColumnLabel(column + 1);
} catch (SQLException ex) {
Logger.getLogger(TableModel.class.getName()).log(Level.SEVERE, null, ex);
}
return "";
}
}
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
14 juin 2011 à 21:35
Salut,

Ton ResultSet garde sa valeur initiale, et n'est pas rechargé après ton delete sur la base. Idéalement, ton TableModel doit pointer vers une liste d'objets correspondant à la requête qui renvoie le ResultSet. Après ton delete, tu réaffectes cette liste et tu appelles la méthode repaint() sur ta JTable

gmi19oj19
0
abdellah1987 Messages postés 6 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 14 juin 2011
14 juin 2011 à 23:00
merci pour tes explication , je suis débutent en java donc tu peut explique comment je peut faire ca avec la liste et merci
0
Rejoignez-nous