fireTableDataChanged ne met pas le modele a jour.
Bonjour,
Ma JTable tblProjet est liée à la table t_projet d'une base de donnée cette table a une clé primaire incrémentée automatiquement.
Un bouton permet d'ajouter un projet.
Tout va bien charger une première fois la JTable et pour mettre à jour la base de donnée avec une requête Insert.
La partie connexion fonctionne bien
C'est la JTable qui ne se rafraichis pas.
Voici une partie de mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| DefaultTableModel modelPont = new DefaultTableModel(GetDataPont(0),columnsPont);
tbl_Pont = new JTable(modelPont);
tbl_Pont.setBackground(Color.LIGHT_GRAY);
tbl_Pont.setForeground(Color.BLACK);
scrollPane_1.setViewportView(tbl_Pont);
protected String[][] GetData() {
// Fait un tableau des projets à inserer dans le model de la jTable
qry = "SELECT * FROM t_projet";
res= Connexion.getResultSet(qry);
try {
res.last();
String data[][] = new String[res.getRow()+1][4];
res.beforeFirst();
int i = 0;
while (res.next()) {
int id = res.getInt(1);
String noProjet = res.getString(2);
String lot = res.getString(3);
String titre = res.getString(4);
data[i][0] = id + "";
data[i][1] = noProjet;
data[i][2] = lot;
data[i][3] = titre;
i++;
}
return data;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
btnAjoutProjet = new JButton("Ajouter");
btnAjoutProjet.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Connexion.majTbProjet(Integer.parseInt(txtNoProjet.getText()), txtLot.getText(), txtTitreProj.getText());
fermerAjout();
tblProjet.getModel();
modelProjet.fireTableDataChanged();
}
});
} |
Voici l'erreur que j'observe:
Citation:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 10
at java.base/java.util.Vector.elementData(Vector.java:731)
at java.base/java.util.Vector.elementAt(Vector.java:469)
at java.desktop/javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:660)
L'index devrait être 9 au lieu de -1
Merci d'avance.