Voila mon problème :
J'ai une JFrame avec 3 listes et un JTable
Lorsque l'utilisateur clique sur un element la premiere JList des élements s'affichent dans la seconde, lorsqu'il clique sur un element la seconde JList des élements s'affichent dans la seconde et lorsqu'il clique sur un élement de la dernière alors le JTable est initialisé.
Le problème vient de lorsque l'on clique sur la troisième JList il y a un NullPointeurException qui se produit
Visiblement cela se produit dans la methode prepareRender de la classe JTable dont voici le code :
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 java.lang.NullPointerException at javax.swing.JTable.prepareRenderer(JTable.java:3731) at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:1149) at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1051) at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:974) at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142) at javax.swing.JComponent.paintComponent(JComponent.java:541) at javax.swing.JComponent.paint(JComponent.java:808) at javax.swing.JComponent.paintChildren(JComponent.java:647) at javax.swing.JComponent.paint(JComponent.java:817) at javax.swing.JViewport.paint(JViewport.java:722) at javax.swing.JComponent.paintChildren(JComponent.java:647) at javax.swing.JComponent.paint(JComponent.java:817) at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4787) at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4740) at javax.swing.JComponent._paintImmediately(JComponent.java:4685) at javax.swing.JComponent.paintImmediately(JComponent.java:4488) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:410) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) at java.awt.EventQueue.dispatchEvent(EventQueue.java:454) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
J'en ai donc déduis que la variable render était à Null
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { Object value = getValueAt(row, column); boolean isSelected = isCellSelected(row, column); boolean rowIsAnchor = (selectionModel.getAnchorSelectionIndex() == row); boolean colIsAnchor = (columnModel.getSelectionModel().getAnchorSelectionIndex() == column); boolean hasFocus = (rowIsAnchor && colIsAnchor) && isFocusOwner(); return renderer.getTableCellRendererComponent(this, value, isSelected, hasFocus, row, column); }
Or je n'ai défini aucune class implementant TableCellRenderer et je n'ai touché à aucune méthode apparaissant dans l'erreur de compilation
Voici le code du listener de selection de ma troisieme liste (_listeMois)
Donc si quelqu'un a une idée d'où cela vient ou encore où chercher... je suis preneur
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 _listeMois.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting() == false) { int index = _listeMois.getSelectedIndex(); if (index != -1) { String compte = ((Compte) _listeComptes.getSelectedValue()). toString(); int annee = Integer.parseInt(((Annee) _listeAnnees. getSelectedValue()).toString()); String mois = ((Mois) _listeMois.getSelectedValue()). toString(); _listeTransactions.setModel(_user.getMois(compte, annee, mois)); } } } } );
Partager