JAVA | Réafficher une JList
Résolu
Xineroks
Messages postés
158
Date d'inscription
Statut
Membre
Dernière intervention
-
Xineroks Messages postés 158 Date d'inscription Statut Membre Dernière intervention -
Xineroks Messages postés 158 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche désespérément à supprimer un élément de ma JList, qui comprend un DefaultListModel.
Les données de ma liste proviennent d'une BDD, j'arrive bien a effectuer les requêtes de suppressions mais j'ai toujours un problème sur le ré affichage de l'objet.
J'ai tenter de clear la DLM, puis de réinserer, comme j'fais habituellement pour du réaffichage après insertion ( la dessus pas de soucis )
Bref trêve de blabla je vous montre en speed ce que j'ai, tout d'abord mes déclarations de JList et DLM :
Voici ensuite la méthode de ré affichage ( qui fonctionne ) :
et voici le bout de code permettant la suppression :
et bien sur l'erreur :
Merci de votre aide, car je bloque sur un truc tout bête pour terminer mon application
Cordialement,
Xineroks
Je cherche désespérément à supprimer un élément de ma JList, qui comprend un DefaultListModel.
Les données de ma liste proviennent d'une BDD, j'arrive bien a effectuer les requêtes de suppressions mais j'ai toujours un problème sur le ré affichage de l'objet.
J'ai tenter de clear la DLM, puis de réinserer, comme j'fais habituellement pour du réaffichage après insertion ( la dessus pas de soucis )
Bref trêve de blabla je vous montre en speed ce que j'ai, tout d'abord mes déclarations de JList et DLM :
private DefaultListModel dlm = new DefaultListModel(); private JList mesVinsGest = new JList(dlm); private JScrollPane monScrollGest = new JScrollPane(); private JList mesVinsSupp = new JList(dlm); private JScrollPane monScrollSupp = new JScrollPane();
Voici ensuite la méthode de ré affichage ( qui fonctionne ) :
private void chargerLaListe(JList laListe, DefaultListModel dlm) { dlm.clear(); laListe.removeAll(); try { Connection conn = DriverManager.getConnection(url, user, passwd); Statement etat = conn.createStatement(); ResultSet resultat = etat.executeQuery("SELECT codebout, nomb FROM bouteille ORDER BY codebout"); while(resultat.next()){ if(! resultat.getString("codebout").equals("0")) dlm.addElement(resultat.getString("codebout") + " " + resultat.getString("nomb")); } resultat.close(); etat.close(); } catch (Exception e) { e.printStackTrace(); } }
et voici le bout de code permettant la suppression :
btnSupp.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e){ try{ String str = mesVinsSupp.getSelectedValue().toString(); String[] stStrCode = str.split(" "); if(!str.equals("")){ Connection conn = DriverManager.getConnection(url, user, passwd); PreparedStatement ps; PreparedStatement psB; ResultSet rsPres; PreparedStatement psPres; String sqlstrPresB = null; String sqlstrPres = "SELECT COUNT(*) FROM vinavecappellation WHERE codebout = ?"; psPres = conn.prepareStatement(sqlstrPres); psPres.setInt(1, Integer.valueOf(stStrCode[0])); rsPres = psPres.executeQuery(); rsPres.next(); if(rsPres.getInt(1)==1){ sqlstrPres = "DELETE FROM vinavecappellation WHERE codebout = ?"; ps = conn.prepareStatement(sqlstrPres); ps.setInt(1, Integer.valueOf(stStrCode[0])); ps.executeUpdate(); } else{ sqlstrPres = "DELETE FROM vinsimple WHERE codebout = ?"; ps = conn.prepareStatement(sqlstrPres); ps.setInt(1, Integer.valueOf(stStrCode[0])); ps.executeUpdate(); } sqlstrPresB = "DELETE FROM bouteille WHERE codebout = ?"; psB = conn.prepareStatement(sqlstrPresB); psB.setInt(1, Integer.valueOf(stStrCode[0])); psB.executeUpdate(); rsPres.close(); conn.close(); JOptionPane.showMessageDialog(null, "Cette bouteille à bien été supprimée", "Alerte", JOptionPane.ERROR_MESSAGE); } }//try catch(Exception evt){ JOptionPane.showMessageDialog(null, "Selectionnez une bouteille", "Alerte", JOptionPane.ERROR_MESSAGE); }//catch dlm.removeElementAt(mesVinsSupp.getSelectedIndex()); chargerLaListe(mesVinsSupp,dlm); chargerLaListe(mesVinsGest,dlm); } });
et bien sur l'erreur :
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at fr.xineroks.mesclasses.Fenetre$2.valueChanged(Fenetre.java:409) at javax.swing.JList.fireSelectionValueChanged(Unknown Source) at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.removeIndexInterval(Unknown Source) at javax.swing.plaf.basic.BasicListUI$Handler.intervalRemoved(Unknown Source) at javax.swing.AbstractListModel.fireIntervalRemoved(Unknown Source) at javax.swing.DefaultListModel.removeElementAt(Unknown Source) at fr.xineroks.mesclasses.Fenetre$3.actionPerformed(Fenetre.java:550) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Merci de votre aide, car je bloque sur un truc tout bête pour terminer mon application
Cordialement,
Xineroks
A voir également:
- JAVA | Réafficher une JList
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
Le message d'erreur indique un NullPointerException sur Fenetre$2.valueChanged or tu n'as pas mis le code de cette méthode (qui doit probablement être un ListSelectionListener)
Oui, exactement.
Mais ayant supprimer sans faire exprès mon projet... je dois re-coder ce que j'ai perdu...
et tenter un data recovery sur clé USB pour récupérer des .java ou .class ça craint ...
:blasé:
Allez c'est parti ! 4H de taf pour rien...
Mais ayant supprimer sans faire exprès mon projet... je dois re-coder ce que j'ai perdu...
et tenter un data recovery sur clé USB pour récupérer des .java ou .class ça craint ...
:blasé:
Allez c'est parti ! 4H de taf pour rien...
Voilà, j'ai réparé mes bêtises et effectivement il y bien une erreur dû au ListSelectionListener, car lorsque je supprime puis, met à jour mes données la liste qui possède le listener est affecté, donc écoute quelque chose qu'il ne devrait pas. C'est ce qui me génère l'erreur.
Je dois sans doute changer de listener, je vais me renseigner sur quelque chose de plus adapté.
le mieux serait du style, "sur clic d'un élément"
Je dois sans doute changer de listener, je vais me renseigner sur quelque chose de plus adapté.
le mieux serait du style, "sur clic d'un élément"