IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Problème remplissage jtable


Sujet :

Java

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Par défaut Problème remplissage jtable
    Bonjour j'ai un problème avec une jtable qui ne veut pas se remplir avec mes données qui se trouve sur mysql.

    D'après mes tests c'est à l'ultime étape que ça coince puisque quand j'appelle ma méthode de remplissage "remplirjtable" elle affiche le contenu du catch.

    Voici mon code merci d'avance pour votre aide puisque là je cherche depuis pas mal de temps mais en vain

    Classe connexion

    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
     
    public class Connexion {
     
      public static Connection Ouverture() {
     
         Connection c;
     
         try {
           Class.forName("com.mysql.jdbc.Driver");
           c = DriverManager.getConnection("jdbc:mysql://localhost/camping new?" +
                                           "user=root&password=");
     
           return c;
         }
         catch (Exception e) {
           System.out.println("Probleme de connexion");
           return null;
         }
       }
    classe testclient où se trouve la requête sql

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    public static Vector remplirTableau(Connection c) throws Exception {
        String sql1;
        String sql2;
     
        int i = 0;
        //int j = 2;
        Vector v = new Vector();
     
        Client d = new Client();
        ResultSet rs1;
        ResultSet rs2;
        System.out.println("c:" + c);
        try {
     
          sql1 = "SELECT * FROM client";
    //sql2 = "SELECT COUNT (*) FROM CLIENT";
          //j=Integer.parseInt(sql2);
     
          PreparedStatement s = c.prepareStatement(sql1,
                                                   ResultSet.TYPE_FORWARD_ONLY,
                                                   ResultSet.CONCUR_READ_ONLY);
     
          rs1 = s.executeQuery();
     
        System.out.println("ok");
         System.out.println(sql1);
        if (!rs1.next()) {
            rs1.close();
    System.out.println("pasrentr�");
            return null;
          }
          else {
     
            while (rs1.next()) {
               System.out.print("codd");
               d = new Client(rs1.getInt("NUMERO_CLIENT"),rs1.getString("NOM_CLIENT"), rs1.getString("PRENOM_CLIENT"),
                            rs1.getString("ADRESSE_CLIENT"), rs1.getInt("NUMERO_BADGE"),
                            rs1.getString("ADRESSE_MAIL"),
                            rs1.getString("NUMERO_TELEPHONE"),
                            rs1.getInt("ID_NATIONALITE"));
    System.out.println(d);
           System.out.println("okok");    
     
           v.addElement(rs1.getInt("NUMERO_CLIENT")+" "+rs1.getString("NOM_CLIENT") + " " +
                           rs1.getString("PRENOM_CLIENT")+" "+rs1.getString("ADRESSE_CLIENT")+" "+rs1.getInt("NUMERO_BADGE")+" "+rs1.getString("ADRESSE_MAIL")+" "+rs1.getString("NUMERO_TELEPHONE")+" "+rs1.getInt("ID_NATIONALITE"));
     
    System.out.println("okok");
           //i++;
              //rs1.close();
              System.out.println("okokok");
     
            }
           rs1.close();
            return v;
          }
        }
     
        catch (SQLException ex) {
     
          JOptionPane.showMessageDialog(null, "Affichage Impossible");
          return null;
        }
     
      }
    classe cadreclient où devrait s'afficher ma jtable

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    import javax.swing.*;
    import java.awt.*;
    import java.util.*;
     
    import java.sql.*;
    import java.awt.event.*;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableModel;
     
    public class CadreClient extends JFrame {
      JPanel jPanel1 = new JPanel();
      JButton jButton1 = new JButton();
      JButton jButton2 = new JButton();
    static Connection c;
     Vector v2 = new Vector();
     
     
     JTextField jTextField1 = new JTextField();
      JScrollPane jScrollPane1 = new JScrollPane();
      JTable jTable1 = new JTable();
     
     
          public CadreClient() {
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      private void jbInit() throws Exception {
        this.getContentPane().setLayout(null);
        jPanel1.setBounds(new Rectangle(16, 0, 567, 391));
        jPanel1.setLayout(null);
        jButton1.setBounds(new Rectangle(381, 93, 116, 33));
        jButton1.setActionCommand("jButtonListeCompl�te");
        jButton1.setText("Liste des clients");
        jButton2.setBounds(new Rectangle(381, 163, 116, 33));
        jButton2.setToolTipText("");
        jButton2.setActionCommand("jButtonRecherche");
        jButton2.setText("Recherche");
        jButton2.addActionListener(new CadreClient_jButton2_actionAdapter(this));
        jTextField1.setText("");
        jTextField1.setBounds(new Rectangle(381, 235, 116, 33));
        jScrollPane1.setBounds(new Rectangle(56, 122, 232, 236));
        this.getContentPane().add(jPanel1, null);
        jPanel1.add(jButton1, null);
        jPanel1.add(jButton2, null);
        jPanel1.add(jTextField1, null);
        jPanel1.add(jScrollPane1, null);
        jScrollPane1.getViewport().add(jTable1, null);
     
    v2.addElement("numero");
        v2.addElement("nom");
        v2.addElement("pr�nom");
        v2.addElement("adresse"); 
        v2.addElement("badge");
        v2.addElement("mail");
        v2.addElement("t�l�phone");
        v2.addElement("nationalit�");
    //remplirjtable();
      }
     
     
      void remplirjtable() throws Exception {
         c=  Connexion.Ouverture();
    System.out.println(c);
         System.out.println(v2);
         try {
     
           DefaultTableModel dtm = new DefaultTableModel(TestClient.remplirTableau(c),v2);
                    jTable1.setModel(dtm);
     
          }
     
          catch (Exception emj) {
    System.out.println("erreur");
          }
     
        }
     
      void jButton2_actionPerformed(ActionEvent e) {
    try{
    remplirjtable();}
     
        catch(Exception ed){
     
        JOptionPane.showMessageDialog(null,"laisse tomber");
        }
      }
     
     
     
    }
     
    class CadreClient_jButton2_actionAdapter implements java.awt.event.ActionListener {
      CadreClient adaptee;
     
      CadreClient_jButton2_actionAdapter(CadreClient adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton2_actionPerformed(e);
      }
    }
    Bien entendu je n'ai mis que les parties de code concernant le remplissage de la jtable,

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Pour avoir l'erreur exacte, remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    catch (Exception emj)
    {
      System.out.println("erreur");
    }
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    catch (Exception emj)
    {
      emj.printStackTrace();
    }
    Et donne nous la trace complète.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Par défaut
    Merci de vous intéresser à mon problème

    Voilà la trace:

    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
     
    java.lang.ClassCastException
    	at javax.swing.table.DefaultTableModel.justifyRows(DefaultTableModel.java:238)
    	at javax.swing.table.DefaultTableModel.setDataVector(DefaultTableModel.java:194)
    	at javax.swing.table.DefaultTableModel.<init>(DefaultTableModel.java:131)
    	at projetsyntghesecampingv2.CadreClient.remplirjtable(CadreClient.java:73)
    	at projetsyntghesecampingv2.CadreClient.jButton2_actionPerformed(CadreClient.java:86)
    	at projetsyntghesecampingv2.CadreClient_jButton2_actionAdapter.actionPerformed(CadreClient.java:105)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
    	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
    	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
    	at java.awt.Component.processMouseEvent(Component.java:5100)
    	at java.awt.Component.processEvent(Component.java:4897)
    	at java.awt.Container.processEvent(Container.java:1569)
    	at java.awt.Component.dispatchEventImpl(Component.java:3615)
    	at java.awt.Container.dispatchEventImpl(Container.java:1627)
    	at java.awt.Component.dispatchEvent(Component.java:3477)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
    	at java.awt.Container.dispatchEventImpl(Container.java:1613)
    	at java.awt.Window.dispatchEventImpl(Window.java:1606)
    	at java.awt.Component.dispatchEvent(Component.java:3477)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
    	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)

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Etonnant comme erreur. Je ne sais pas d'où peut provenir le problème.
    Vérifie que "TestClient.remplirTableau(c)" ne renvoie pas null. Je n'ai pas d'autres idées.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Par défaut
    personne pour m'aider svp, je suis coincé

  6. #6
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Il semblerai que ce problème soit dû à un bug du JDK... (voir ici: http://bugs.sun.com/bugdatabase/view...bug_id=4893575)

    Le moyen le plus simple est,je pense,de changer de JDK...

  7. #7
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Par défaut
    Ca met exactement les mêmes erreurs sous netbeans avec la jdk 6 je ne vais pas y arriver je crois bien

  8. #8
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Est-ce que tu es dans le cas du bug mentionné par supersnail ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  9. #9
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Par défaut
    Il semblerait que oui mais ce que je ne comprends pas c'est que j'ai exectement le même problème sur netbeans qui est sur la version 1.6.

    Je vais essayer de faire la méthode avec les tableaux pour voir si ça marche je vous tiens au courant

  10. #10
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Par défaut
    J'ai dû à me résoudre à changer mes 2 vecteurs par 2 tableaux et ça marche très bien avec un defaultTableModel.

    Résolu merci à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de JTable
    Par arsenik7 dans le forum Composants
    Réponses: 17
    Dernier message: 01/08/2006, 09h36
  2. Problème sur JTable
    Par arsenik7 dans le forum Composants
    Réponses: 4
    Dernier message: 03/07/2006, 16h42
  3. [ComboBox] problème remplissage
    Par samtheh dans le forum MFC
    Réponses: 5
    Dernier message: 18/06/2006, 10h58
  4. Problème avec Jtable
    Par @yoyo dans le forum Composants
    Réponses: 4
    Dernier message: 22/03/2006, 15h51
  5. problème avec Jtable
    Par magic001 dans le forum Composants
    Réponses: 6
    Dernier message: 15/03/2006, 23h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo