Bonjour,
Voila lorsque je veux ajouter un utilisateur avec la methode mettreAjourTable, j'ai une erreur.
Il me dit que ma liste d'utilisateur est null (java.lang.NullPointerException).
Et je ne comprends ou est ma faute.
voici le code
Ensuite mon modele
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
74
75
76
77
78
79
80
81
82
83
84
85 package panel; import java.awt.*; import java.util.ArrayList; import javax.swing.*; import modele.ModeleTableUser; import org.jdesktop.swingx.*; import classe.*; public class PageGestUser extends JXPanel { /** * */ private static final long serialVersionUID = 1L; private JXPanel pageGestUsrHaut; private JLabel labelPageGestUsrHaut; private ArrayList<Utilisateur> listUtil; private ListUsr listeUsr; private JTable tablePoints; private JScrollPane listeDeroulante; public PageGestUser(ArrayList<Utilisateur> listUtil){ this.listUtil=listUtil; this.setLayout(new BorderLayout()); this.add(getPageGestUsrHaut(), BorderLayout.NORTH); this.add(getListeDeroulante(), BorderLayout.CENTER); mettreAjourTable(new Utilisateur("test4", "test") ); } public JXPanel getPageGestUsrHaut(){ if (pageGestUsrHaut == null){ pageGestUsrHaut = new JXPanel(); } listeUsr= new ListUsr(); listeUsr.ajouterUsr(new Utilisateur("test1", "test1")); listeUsr.ajoutList(listUtil); pageGestUsrHaut.setLayout(new FlowLayout()); pageGestUsrHaut.setPreferredSize(new Dimension(300,55)); pageGestUsrHaut.add(getLabelPageGestUsrHaut()); return pageGestUsrHaut; } public JLabel getLabelPageGestUsrHaut(){ if (labelPageGestUsrHaut==null){ labelPageGestUsrHaut = new JLabel("Gestion des utilisateurs"); } Font font = new Font("Verdana", Font.BOLD, 15); labelPageGestUsrHaut.setFont(font); labelPageGestUsrHaut.setHorizontalAlignment(SwingConstants.CENTER); return labelPageGestUsrHaut; } public JScrollPane getListeDeroulante() { if(listeDeroulante == null){ listeDeroulante = new JScrollPane(this.getTableUser()); } return listeDeroulante; } public ListUsr getListeUser() { return listeUsr; } public JTable getTableUser() { if(tablePoints == null){ tablePoints = new JTable (new ModeleTableUser(listeUsr)); tablePoints.setFillsViewportHeight(true); //TableRowSorter<TableModel> sorter = new TableRowSorter <TableModel>(tablePoints.getModel()); //tablePoints.setRowSorter(sorter); //sorter.setComparator(0,new ComparatorX()); //sorter.setComparator(1,new ComparatorX()); } return tablePoints; } public void mettreAjourTable(Utilisateur u){ listeUsr.ajouterUsr(u); ((ModeleTableUser)getTableUser().getModel()).mettreAjourDonnees(); getListeDeroulante().revalidate(); getListeDeroulante().repaint(); } }
D'avance merci pour votre aide
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 package modele; import javax.swing.table.*; import classe.*; public class ModeleTableUser extends AbstractTableModel{ private static final long serialVersionUID = 1L; private Object[] nomColonnes; private Object[][] donnees; private ListUsr listeUsr; public ModeleTableUser(ListUsr listeUsr){ donnees = listeUsr.recupererDonnees(); nomColonnes = ListUsr.recupererNomsColonnes(); } public int getColumnCount(){ return nomColonnes.length; } public int getRowCount(){ return donnees.length; } public Object getValueAt(int row , int col){ return donnees[row][col]; } public String getColumnName(int col){ return (String) nomColonnes[col]; } public void mettreAjourDonnees(){ //listeUsr.affList(); donnees= listeUsr.recupererDonnees(); } }
Partager