H4rDBuG
Messages postés47Date d'inscriptionjeudi 14 janvier 2010StatutMembreDernière intervention26 juillet 2011
-
1 juil. 2011 à 09:28
H4rDBuG
Messages postés47Date d'inscriptionjeudi 14 janvier 2010StatutMembreDernière intervention26 juillet 2011
-
1 juil. 2011 à 16:18
Bonjour a toutes et a tous,
Je vous expose mon problème :
J'ai sur mon ihm 3 JPanel, chaque panel est dédié a une fonction (ajout/modif/suppr), mon problème est que quand je désire mettre a jour un produit, la modification du coté BDD est OK, sauf que le contenu de ma JComboBox de ma fonction suppr (qui est aussi remplit par le SQL) ne se change pas.
La JComboBox doit etre chargé au lancement de l'application, ce qui m'entraine une erreur quand je fait ma méthode :
il me retourne une erreur de type nullPointerException (aie), ce qui me semble normal étant donné que la JComboBox est se vide entierement, et se fait remplir aussitot par la méthode cb_prod() ...
Je ne vois pas trop comment "mettre a jour" le contenu de ma JComboBox :/
H4rDBuG
Messages postés47Date d'inscriptionjeudi 14 janvier 2010StatutMembreDernière intervention26 juillet 2011 1 juil. 2011 à 16:11
Au final j'avance un peu, j'ai trouvé pourquoi l'erreur survenait, en effet j'ai mis in itemListerner sur CLibSProd, et dans ce morceau de code, j'utilisais un StringTokenizer, l'erreur est du au fait que je vide la combobox et que mon stringTokenizer se retrouvait vide !
le code de mon itemListerner sur mon CLibSProd :
if(e.getSource()==CLibSProd)
{
StringTokenizer st1 = new StringTokenizer(CLibSProd.getSelectedItem().toString());
int NoProd = Integer.parseInt(st1.nextToken());
if(e.getSource()==BModifProd)
{
try
{
GestionStocks.updateProd(); // on appelle la méthode pour mettre a jour dans la base de données
LConfMProd.setText("Modification effectuée !"); // on confirme la modification
CLibSProd.removeAllItems(); // on vide entierement la combobox de libProduit dans le panel "suppr"
cb_prod(); // on remplit la combobox de nouveau avec la BDD mise a jour
}
catch(Exception ioe){System.out.println(ioe);}
}
Voila je pense que j'ai tout mis ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
H4rDBuG
Messages postés47Date d'inscriptionjeudi 14 janvier 2010StatutMembreDernière intervention26 juillet 2011 1 juil. 2011 à 11:03
la trace de l'erreur :
java.lang.NullPointerException
at gestionstocks.IHM.itemStateChanged(IHM.java:1250)
at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1207)
at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1255)
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1311)
at javax.swing.JComboBox.intervalRemoved(JComboBox.java:1333)
at javax.swing.AbstractListModel.fireIntervalRemoved(AbstractListModel.java:161)
at javax.swing.DefaultComboBoxModel.removeAllElements(DefaultComboBoxModel.java:169)
at javax.swing.JComboBox.removeAllItems(JComboBox.java:753)
at gestionstocks.IHM.actionPerformed(IHM.java:1329)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 1 juil. 2011 à 11:20
Est ce que tu as initlisé ta JComboBox CLibSProd, avec un new, c'est elle qui est à null. Meme sii elle est vide, tu l'initialises à vide et tu n'auras pas cette erreur
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 1 juil. 2011 à 15:37
Si tu m'avais donné le code de GestionStocks.updateProd(); ainsi que la classe toute entière qui pose problème, ton problème serait surement déjà résolut...
H4rDBuG
Messages postés47Date d'inscriptionjeudi 14 janvier 2010StatutMembreDernière intervention26 juillet 2011 1 juil. 2011 à 15:39
bah le problème c'est que j'utilise un singleton, y'a au moins 4 classes et le tout y'en a pour pas loin de 2000 lignes de code ... envoie moi ton mail en privé et je t'envoie directement le projet en .rar si tu veux
H4rDBuG
Messages postés47Date d'inscriptionjeudi 14 janvier 2010StatutMembreDernière intervention26 juillet 2011 1 juil. 2011 à 15:53
Bah justement, je sais pas trop, sa ne vient pas de la méthode updateProd(); car la mise a jour s'effectue bien au niveau de la base de données, et l'erreur est soulignée a la ligne ou je fait CLibSProd.removeAllItems(); ... si je met cette ligne la en commentaire, il n'y a plus d'erreurs, et cb_prod() marche niquel, sauf que sa me rajoute les occurences dans la combobox qui n'est pas vidé, et je me retrouve donc avec toutes les infos en double ...
H4rDBuG
Messages postés47Date d'inscriptionjeudi 14 janvier 2010StatutMembreDernière intervention26 juillet 2011 1 juil. 2011 à 16:13
Et encore (désolé pour le triple post), ce n'est pas mettre a jour le contenu entier de ma combobox, mais seulement l'item que j'ai modifié ... donc un seul item
H4rDBuG
Messages postés47Date d'inscriptionjeudi 14 janvier 2010StatutMembreDernière intervention26 juillet 2011 1 juil. 2011 à 16:18
(quadruple post pas taper svp)
la mise a jour de la combobox est faite automatiquement, du fait que je rappelle la méthode cb_prod(); (légèrement modifiée)
Donc ca marche niquel !
Merci beaucoup Julien39 de m'avoir aidé (sans tes questions j'aurais jamais trouvé d'ou venait l'erreur ^^), j'ai encore un peu de mal avec la logique :/
Merci beaucoup et si quelqu'un a des questions, envoyez-moi un message privée ;)