Bonjour,

je viens vers vous après plusieurs jours de recherche pour un problème qui est vraisemblablement traité souvent dans cette section.

J'ai un fichier XML qui est créé par mon application et qui doit être affiché dans une JTable. Dans l'ancienne version de ma JTable, je la créais sans passer par un modele et cela me convenait jusqu'à ce que je me rende compte que la JTable ne pouvait pas se rafraichir sans tableModel.
Depuis ce moment, j'ai un gros problème, je n'ai plus rien dans ma JTable

Je viens vers vous car je tourne en rond...

Voici le code de mes classes JTable et Model
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
 
public class remindEnCours {
 
 
 
    private  JScrollPane scrollPane;
    static JTable tableXML;
 
 
 
    public remindEnCours(FenetrePrincipale fenetre)
    {
        modeleTable monModele=new modeleTable();
        tableXML=new JTable(monModele);
        tableXML.setVisible(true) ;     
        centrerTable(tableXML);
        fenetre.getContentPane().add(new JScrollPane(tableXML), BorderLayout.CENTER);
    }
 
 
 
    private void centrerTable(JTable table) 
    {     
        DefaultTableCellRenderer custom = new DefaultTableCellRenderer();
        custom.setHorizontalAlignment(JLabel.CENTER);
        for (int i=0 ; i<table.getColumnCount() ; i++)
        table.getColumnModel().getColumn(i).setCellRenderer(custom);
        TableCellRenderer headerRenderer = table.getTableHeader().getDefaultRenderer();
        ((DefaultTableCellRenderer) headerRenderer).setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
     }
 
    public class modeleTable extends DefaultTableModel {
 
 
        private Document document;
        private  Element racine;
        private  String[] columnNames={"Id", "Libellé de l'alerte", "Date", "Répétition", "Active"}; 
        private  Object[][] data;
 
        public modeleTable()
        {
        SAXBuilder sxb = new SAXBuilder();
        try {
            document = sxb.build(new File(".//files/Alertes.xml"));
        } catch (Exception e5) {
            e5.printStackTrace();
        }
 
        racine = document.getRootElement();
        System.out.println("racine " + racine);
        List listJob = racine.getChildren("alerte");
        FenetrePrincipale.barreEtat.setText(listJob.size()+" éléments chargés");
        Iterator i = listJob.iterator();
        while (i.hasNext())
        {
            Element courant = (Element) i.next();
            String[] rowData = {
                    courant.getAttributeValue("id"),
                    courant.getChild("libelle").getText(),
                    courant.getChild("date").getText(),
                    courant.getChild("frequence").getText(),
                    courant.getChild("active").getText()
            };
 
            fireTableDataChanged();
            addRow(rowData);
        }
        } 
 
    }
 
}
Merci d'avance!