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 : Sélectionner tout - Visualiser dans une fenêtre à part
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?