Bonjour,
mon but est d'afficher les données se trouvant dans une base de données dans une JTable.
J'ai donc creer un modele pour la table :
Ensuite, je creer ma table, en l'inserant dans un JScrollPane, qui est lui meme dans un Panelfournisseur herite de JPanel, qui est lui meme dans un JTabbedPane qui se trouve dans la JFrame.
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 public class TableModele extends AbstractTableModel { private static final long serialVersionUID = 1L; private String[][] data; private String[] columnNames; public TableModele(LinkedList<LinkedList<String>> result , String[] columnNames) { this.data = new String[result.size()-1][columnNames.length]; for (int i = 1; i < result.size(); i++) { for (int j = 1; j < result.get(i).size(); j++) { this.data[i-1][j-1]=result.get(i).get(j); } } this.columnNames = columnNames; } public int getColumnCount() { return data[0].length; } public Object getValueAt(int parm1, int parm2) { return data[parm1][parm2]; } public int getRowCount() { return data.length; } public String getColumnName(int col) { return this.columnNames[col]; } public String[] getColumnNames() { return columnNames; } public void setColumnNames(String[] columnNames) { this.columnNames = columnNames; } public String[][] getData() { return data; } }
Maintenant, j'ai un bouton qui me permet de rajouter un fournisseur, et j'aimerais que la table se mettre a jour, et s'affiche avec les nouvelles informations. La fonction updatetableFournisseur me permet de mettre a jour cette table, mais elle ne se met pas jour dans la vue.
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 public class PanelFournisseur extends JPanel { private static final long serialVersionUID = 1L; private JTable table; private Controleur controleur; public PanelFournisseur(Controleur controleur) throws SQLException { super(new BorderLayout()); this.controleur = controleur; this.table = new JTable(); this.updateTableFournisseur(); this.table.setEnabled(false); this.table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); JScrollPane scrollPane = new JScrollPane(this.table); this.add(scrollPane); } public void updateTableFournisseur() throws SQLException { LinkedList<LinkedList<String>> result = this.controleur.getGestionStockManager().getConn().executeQuery("select * from fournisseurs"); String[] columnNames = {"Nom", "Adresse","CP","Ville","Pays","Téléphone","Fax","Contact","E-Mail"}; TableModele modeleTableFournisseur = new TableModele(result,columnNames); this.setTable(new JTable(modeleTableFournisseur)); } }
J'ai essaye repaint(), validate(), fireTableDataChanged(), etc, mais je dois pas les utiliser correctement car ca ne fonctionne pas.
Merci de votre aide.
Partager