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
Merci d'avance!
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); } } } }
Partager