Vit@l
Messages postés28Date d'inscriptiondimanche 6 avril 2014StatutMembreDernière intervention12 juin 2020
-
11 févr. 2020 à 09:04
Bonjour,
Merci d'avance pour votre aide.
Je développe une application client-serveur. Au point où je suis, j'affiche le résultat de la requête du client et dans mon application serveur et dans celle du client. ce résultat n'est autre qu'un tableau que je désérialise (j'ai stocké le résultat du resultSet dans ce tableau, puis j'ai sérialisé ce dernier). Le problème est que ; bien que ça semble marcher, j'obtiens une exception:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
sans me montrer la ligne qui la génère. Je suis perdu! Je serai très ravi de votre aide.
Voici le code de la classe qui traite les requêtes:
private int ligne=0, colonne=0; private JTable tableResultat;
ExecutionRequete(String req){ this.requete=req;
} public synchronized void run(){
try { try { stm=ConnexionBDD.getInstance().createStatement(); resultat=stm.executeQuery(requete); while(resultat.next())ligne++; //on renseigne le nombre de lignes resultat=stm.executeQuery(requete); genererResultat(resultat);
} catch (com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException e) { System.out.println("Connexion à la base des données non admise"); } // afficherResultat(resultat); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //Méthode de construction du tableau des résultats protected void genererResultat(ResultSet result){
String[] tabTitre; String[][] tabDonnees;
try { colonne=result.getMetaData().getColumnCount();//on renseigne le nombre de colonnes System.out.println("Nombre de colonnes: "+colonne); tabTitre=new String[colonne]; for(int i=1;i<=colonne;i++){//Remplissage du tableau des titres tabTitre[i-1]=result.getMetaData().getColumnName(i); } System.out.println("nombre de lignes trouvé: "+ligne); tabDonnees=new String[ligne][colonne]; //Remplissage des données int l=0; while(result.next()){ for(int k=1;k<=colonne;k++){ tabDonnees[l][k-1]=result.getString(k); } l++; } //remplissage du JTable this.tableResultat=new JTable(tabDonnees,tabTitre); //Sérialisation et désérialisation try { this.oosSerial=new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(new File("ResReq/"+nomFichierResultat)))); oosSerial.writeObject(tableResultat); oosSerial.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
En entièreté voici ce que m'affiche la console après l'envoi de la requête "SELECT *FROM eleve":
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.ScrollPaneLayout.preferredLayoutSize(Unknown Source) at java.awt.Container.preferredSize(Unknown Source) at java.awt.Container.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at java.awt.FlowLayout.layoutContainer(Unknown Source) at java.awt.Container.layout(Unknown Source) at java.awt.Container.doLayout(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validate(Unknown Source) at javax.swing.RepaintManager$3.run(Unknown Source) at javax.swing.RepaintManager$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at javax.swing.RepaintManager.validateInvalidComponents(Unknown Source) at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(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$JavaSecurityAccessImpl.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) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source) at java.awt.Container.layout(Unknown Source) at java.awt.Container.doLayout(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validate(Unknown Source) at javax.swing.RepaintManager$3.run(Unknown Source) at javax.swing.RepaintManager$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at javax.swing.RepaintManager.validateInvalidComponents(Unknown Source) at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(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$JavaSecurityAccessImpl.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) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source) at java.awt.Container.layout(Unknown Source) at java.awt.Container.doLayout(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validate(Unknown Source) at javax.swing.RepaintManager$3.run(Unknown Source) at javax.swing.RepaintManager$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at javax.swing.RepaintManager.validateInvalidComponents(Unknown Source) at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(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$JavaSecurityAccessImpl.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)