[jTable] probleme de rafraichissement (conception?)
bonjour,
j'ai parcouru pas mal de post concernant les jtables, et je n'arrive pas à trouver ce que je dois faire pour mettre a jour mon affichage.
dans une jframe j'inclus un JScrollPane qui contient ma Jtable. A l'aide d'une jComboBox je fais differentes requetes à une BDD poiur remplir ma jtable (qui ne varie que sur le nombre de tuples). le probleme est que lorsque je change la table, il n'y a pas de refresh. j'ai essayé le repaint() à differents endroits de mon programme mais rien n'y fait.
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
|
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jComboBox1){
bou = (String)jComboBox1.getSelectedItem();
String theta = noyau.bddChantierEnCourEmployes.chopeFonction(bou);
int chalou = noyau.bddChantierEnCourEmployes.chopeLongueurColSansFiniArchive(bou, theta);
String paf = "";
paf = paf.valueOf(chalou+" chantiers en cours");
jLabel1.setText(paf);
Object chelou[][]= noyau.bddChantierEnCourEmployes.chopeListeChantier(chalou,bou,theta);
String[] titreColonnes = { "Numero du chantier", "Nom du chantier", "Client","Calculateur", "Dessinateur"};
JTable jTable2 = new JTable(chelou, titreColonnes);
this.jTable2 = jTable2;
JScrollPane jScrollPane12 = new JScrollPane();
jTable2.setModel(new MyTableModel(chelou, titreColonnes));
jTable2.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumn col;
col = jTable2.getColumnModel().getColumn(0);
col.setPreferredWidth(60);
col = jTable2.getColumnModel().getColumn(1);
col.setPreferredWidth(350);
col = jTable2.getColumnModel().getColumn(2);
col.setPreferredWidth(110);
getContentPane().add(jScrollPane12,new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 20, 700, 500));
jScrollPane12.setOpaque(true);
jTable2.setOpaque(true);
jScrollPane12.setViewportView(jTable2);
this.jScrollPane2= jScrollPane12;
this.jTable2 = jTable2;
int chaton = noyau.bddChantierEnCourEmployes.chopeLongueurColWhere(theta);
String[] chat = noyau.bddChantierEnCourEmployes.chopeCouleulr(chaton, bou,theta);
for(int h = 0; h<chalou; h++){
for(int pouf = 0; pouf <chaton; pouf ++)
{
if(((String)jTable2.getValueAt(h,0)).compareTo(chat[pouf]) == 0){
this.monarraylist.add(new Integer(h));
}
}
}
jTable2.setDefaultRenderer(String.class, new ColorRenderer());
jTable2.repaint();
this.jScrollPane2.repaint();
repaint();
} |
ps : j'ai quand même un doute sur la création de la table directement dans l'ActionListener, mais ca ne devrait pas changer beaucoup si?