[JTable] NullPointeurException avec prepareRenderer
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
Code:
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) |
Visiblement cela se produit dans la methode prepareRender de la classe JTable dont voici le code :
Code:
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);
} |
J'en ai donc déduis que la variable render était à Null
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)
Code:
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));
}
}
}
}
); |
Donc si quelqu'un a une idée d'où cela vient ou encore où chercher... je suis preneur