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

NetBeans Java Discussion :

afficher requet sql dans tableau en java


Sujet :

NetBeans Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut afficher requet sql dans tableau en java
    salut tous le monde

    j ai un petit probleme concernat l affichage du resultat d une requet sql dans un jtable;
    J'ai réalisé un code mais ca marche pas il m afiche rien qu un probleme au niveau de l (action event e) :o et je comprend pas pourquoi:
    [le code]

    import java.awt.BorderLayout;
    import java.awt.event.ActionListener;
    import java.sql.*;
    import java.util.logging.*;
    import javax.swing.*;
    import javax.swing.table.DefaultTableModel;

    public class tabl extends JFrame implements ActionListener{

    String [] colonnes={"Numéro", "Titre","Auteur","Auteur"};
    Object [][]data;
    DefaultTableModel tablemodel = new DefaultTableModel(data, colonnes);

    JTable table = new JTable(tablemodel);

    public tabl() throws SQLException
    {
    setSize(300,200);
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    JMenuBar jmbar = new JMenuBar();
    setJMenuBar(jmbar);

    JMenu jmfile = new JMenu("File");
    jmbar.add(jmfile);


    JMenuItem itemajout = new JMenuItem("Ajout livre");
    jmfile.add(itemajout);

    itemajout.addActionListener(this);


    JMenuItem itemsuprim = new JMenuItem("Suprimer livre");
    jmfile.add(itemsuprim);

    itemsuprim.addActionListener(this);
    try
    { Class.forName("com.mysql.jdbc.Driver");
    String url ="jdbc:mysql://localhost/java";
    String user ="root";
    String pass="holow";
    Connection cnx = (Connection) DriverManager.getConnection(url, user, pass);
    Statement tm= (Statement) cnx.createStatement();
    ResultSet rs = tm.executeQuery("SELECT id_client,nom,tel,prenom FROM client");

    while(rs.next())
    {
    int num=rs.getInt("id_client" );
    String nom=rs.getString("nom" );
    int tel=rs.getInt("tel" );
    String prenom=rs.getString("prenom" );
    }
    }

    catch (ClassNotFoundException e)
    {
    System.out.println("erreur : ClassNotFoundException");
    }

    tablemodel.addRow(new Object[]{" + num + "," +nom+ "," + tel + "," + prenom + "});




    add(new JScrollPane(table),BorderLayout.CENTER);
    }
    // c est au nivaux de cette ligne quille souligne action event e

    public void actionPerformed( ActionEvent e)
    {
    if(e.getActionCommand().equals("Ajout livre"))
    {ajout c =new ajout();
    c.show();
    this.dispose();
    }

    if(e.getActionCommand().equals("Suprimer livre"))
    {
    int i=table.getSelectedRow();
    tablemodel.removeRow(i);
    }
    }


    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    try {
    new tabl().setVisible(true);
    } catch (SQLException ex) {
    Logger.getLogger(tabl.class.getName()).log(Level.SEVERE, null, ex);
    }
    }
    });
    }
    }

    ci quelqu un peut me dire c est qu oi ce probleme ou coment le resoudre autrement

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Peut-être la réponse...
    D'après ce que j'ai compris de votre code, vous créez deux variables de classe data[][] et Colonnes[], mais vous ne les utilisez pas. J'ai l'impression qu'il manque quelque lignes dans votre code, j'ai donc tenté de les combler ainsi (les lignes que j'ai ajouté sont en itallique) :


    import java.awt.BorderLayout;
    import java.awt.event.ActionListener;
    import java.sql.*;
    import java.util.logging.*;
    import javax.swing.*;
    import javax.swing.table.DefaultTableModel;

    public class tabl extends JFrame implements ActionListener{

    String [] colonnes={"Numéro", "Titre","Auteur","Auteur"};
    Object [][]data;
    DefaultTableModel tablemodel = new DefaultTableModel(data, colonnes);

    JTable table = new JTable(tablemodel);

    public tabl() throws SQLException
    {
    setSize(300,200);
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    JMenuBar jmbar = new JMenuBar();
    setJMenuBar(jmbar);

    JMenu jmfile = new JMenu("File");
    jmbar.add(jmfile);


    JMenuItem itemajout = new JMenuItem("Ajout livre");
    jmfile.add(itemajout);

    itemajout.addActionListener(this);


    JMenuItem itemsuprim = new JMenuItem("Suprimer livre");
    jmfile.add(itemsuprim);

    itemsuprim.addActionListener(this);
    try
    { Class.forName("com.mysql.jdbc.Driver");
    String url ="jdbc:mysql://localhost/java";
    String user ="root";
    String pass="holow";
    Connection cnx = (Connection) DriverManager.getConnection(url, user, pass);
    Statement tm= (Statement) cnx.createStatement();
    ResultSet rs = tm.executeQuery("SELECT id_client,nom,tel,prenom FROM client");

    int NbrCol = rs.getMetaData().getColumnCount();
    // Il faut aussi connaître le nombre de lignes !!!
    rs.last(); // C'est nécéssaire d'aller jusqu'au dernier enregistrement pour obliger la lecture complète de la table afin d'être sûr de la réponse suivante...
    int NbrLignes = rs.getRow();
    data = new Object[NbrLignes][NbrCol]
    int pointeur = 0;
    rs.beforeFirst();

    while(rs.next())
    {
    int num=rs.getInt("id_client" );
    String nom=rs.getString("nom" );
    int tel=rs.getInt("tel" );
    String prenom=rs.getString("prenom" );

    data[pointeur][0]=Integer.valueOf(num);
    data[pointeur][1]=nom;
    data[pointeur][2]=Integer.valueOf(tel);
    data[pointeur][3]=prenom;
    pointeur++;


    }
    }

    catch (ClassNotFoundException e)
    {
    System.out.println("erreur : ClassNotFoundException");
    }

    tablemodel = new DefaultModel(data, Colonnes);
    table.setModel(tableModel);

    //tablemodel.addRow(new Object[]{" + num + "," +nom+ "," + tel + "," + prenom + "});

    add(new JScrollPane(table),BorderLayout.CENTER);
    }
    // c est au nivaux de cette ligne quille souligne action event e

    public void actionPerformed( ActionEvent e)
    {
    if(e.getActionCommand().equals("Ajout livre"))
    {ajout c =new ajout();
    c.show();
    this.dispose();
    }

    if(e.getActionCommand().equals("Suprimer livre"))
    {
    int i=table.getSelectedRow();
    tablemodel.removeRow(i);
    }
    }


    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    try {
    new tabl().setVisible(true);
    } catch (SQLException ex) {
    Logger.getLogger(tabl.class.getName()).log(Level.SEVERE, null, ex);
    }
    }
    });
    }
    }

Discussions similaires

  1. [MySQL] probleme affichage requete sql dans tableau
    Par johan0510 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/04/2010, 21h14
  2. requetes sql dans tableau de bord moss
    Par chiraz dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 16/02/2010, 15h30
  3. [SQL-Server] Pb affichage requete sql dans tableau manque 1 ligne
    Par danny3107 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/12/2009, 15h58
  4. [MySQL] affichage resultat requete sql dans tableau
    Par fasyr dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/04/2009, 11h18
  5. résultat d'une requete SQL dans un tableau en JSP
    Par Paradoxys dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/04/2005, 16h17

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