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

JDBC Java Discussion :

Problème :ResultSet dans 1 JTable swing


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Problème :ResultSet dans 1 JTable swing
    Bonjour,


    Débutant sur oracle 10g et ayant réussi à me connecter à cette base et faire 1 affichage sur la console !!!!
    Suite à votre aide j'ai réussi !!! et maintenant j'essaye depuis peu d'afficher le résultat d'1 ResultSet dans une Jtable !!!!!!
    et là !!! Malgré plusieurs essais je n'y arrive pas !!
    Je me suis procuré un modèle sur le site de l'iut-orsay.fr et changé le driver pour oracle , et des warnings sont persistants quand je compile le prog !!!!

    Modèle du prog d'affichage d'une table dans 1 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
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    import java.sql.*;
    import oracle.jdbc.driver.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;   // JTable, JScrollPane, JPanel, JFrame
    import java.util.Vector;
     
     
     
    public class Req2 extends JFrame  {
     
    // Construction de l'interface
     
    public Req2()    {
    // Le composant JTable
        JTable table = remplirTable();
        table.setPreferredScrollableViewportSize(new Dimension(500, 70));
    // Un panneau , placé dans la fenêtre
        JScrollPane panneau = new JScrollPane(table);
        getContentPane().add(panneau, BorderLayout.CENTER);
    // Réflexe sur la table: Clic souris --> affichage des valeurs
        table.addMouseListener(new RefSouris(table));
     
    // Pour fermer la fenêtre
        addWindowListener(new WindowAdapter()   {
    	    public void windowClosing(WindowEvent e)  {System.exit(0);}
        });
    }
     
    // Méthode Principale
     
    public static void main(String[] args)   {
    	Req2 fen = new Req2();
    	fen.pack();
    	fen.setLocation(100, 100);
    	fen.setVisible(true);
    }     	
     
     
    /** Requête et résultats dans une Jtable */
     
     
    JTable remplirTable()   {
     
    Vector tabLignes=new Vector(), nomCols=new Vector();
    int i;
     
    try   {
    // Charger le pilote jdbc - odbc
     
       Class pil = Class.forName("oracle.jdbc.driver");
    // Connexion avec choix du pilote
     
       Connection con = DriverManager.getConnection(
                                      "jdbc:oracle:thin:@asus1:1521:XE","hr","hr");
    // Création d'un objet 'requête'
        Statement req = con.createStatement();
    // Définir, envoyer la requête et récupérer le résultat
        ResultSet res = req.executeQuery("Select * from Employees");
    // Extraire noms des colonnes; les placer dans Vector nomCols
        ResultSetMetaData md = res.getMetaData();
        nomCols = new Vector();
        for ( i=1 ; i<= md.getColumnCount (); i++)
             nomCols.add( md.getColumnLabel(i));
    // Mémoriser le résultat dans la JTable
        while(res.next())  {
    // Placer les 5 valeurs dans Vector ligne
        Vector ligne=new Vector();
        for (i=1; i<=5; i++)  {
    	    String ch=res.getString(i);
    	    ligne.add(ch);
        }
        tabLignes.add(ligne);
    }
    // Fermer la connexion
    con.close();
    }
    catch(Exception e)	  { e.printStackTrace();  }
    return new   JTable(tabLignes,nomCols);
    }
     
     
     
    /** Réflexe associé au clic souris ( classe interne)
        Un champ mémorise la table swing
        */
     
    class RefSouris extends MouseAdapter  {
    	private JTable table;
    	RefSouris(JTable t) {table=t; }
     
    	public void mouseClicked(MouseEvent e)   {
    		AfficherDonnees();
    	}
     
    	private void AfficherDonnees()   {
    		int i,j, numLigs = table.getRowCount(),
    		         numCols = table.getColumnCount();
    		         javax.swing.table.TableModel modele = table.getModel();
    		         a("\nLa table:");
    		         for ( i=0; i < numLigs; i++)   {
    			         a("\n    ligne " + i + ":");
    			         for ( j=0; j < numCols; j++)
    			         System.out.print("   " + modele.getValueAt(i, j));
    		         }
    		         a("\n");
    	         }
             }   // fin Class RefSouris
     
     
    /** Utilitaire: affichage */
     
    static void a( String txt)  {System.out.print(txt);}
     
    /** Utilitaire: message lié à une exception */
     
    static void a( String txt, Exception e)   {
    	a(txt+"  ");
    	if( e!= null)   {
    		a(e.getLocalizedMessage()+"\n  --> " + e.toString());
    		// e.printStackTrace();
    	}
    }
    /*************************************************************/
    }     // fin class Req2
    Si qlq'un pouvait bien me dire ce qui est de travers parce que perso je suis perdu !!!
    je vous montre les warnings à la compilation suite à mon instruction:

    javac -verbose -Xlint Req2.java

    Req2.java:64:warning unchecked call to add(E) as a member of the raw type java.util.Vector
    nomCols.add( md.getColumnLabel(i));

    même type de warning ligne 71
    ligne.add(ch)

    et encore ligne 73
    tabLignes.add(ligne);

    plus

    Req2 java:10 warning [serial] serializable class Req2 has no definition of SerialversionUID
    public class Req2 extends JFrame {



    Merci d'avance pour votre aide !!!

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Problème :ResultSet dans 1 JTable swing
    jer190

    il ya des exemple dans la repertoir:C:\Program Files\Java\jdk1.5.0_10\demo\jfc\TableExample\src qui vont vous aidez d'afficher le résultat d'1 ResultSet dans une Jtable

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    slt, bon je sais pas si t's encore besoin d'aide, mais je vais comem poster un ptit bout de code qui peut aider d'autres personnes mais, un conseil, essaie de ne pas faire de la programmation en vraque , essaie de diviser tes codes en plusieurs méthodes c plus simple

    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 void SetTable(ResultSet _rs){
        String[] colName={"Utilisateur","Mot de passe","Privilège"};
        DefaultTableModel MonModel = (DefaultTableModel) _MaTable.getModel();
        MonModel.setColumnIdentifiers(colName);
        try{
            ResultSetMetaData rsmd = _rs.getMetaData();
            int colNo = rsmd.getColumnCount();
            while(_rs.next()){
                Object[] objects = new Object[colNo];
                for(int i=0;i<colNo;i++)
                    objects[i]=_rs.getObject(i+1);
                MonModel.addRow(objects);
            }
        }catch(SQLException ex){
            System.out.println("erreur setTable"+ex.getMessage());
        }
        _MaTable.setModel(aModel);
    }
    bon le truc c qu'avec cette fonction tu peux directement lui passer en parametre ton resultset et op ça marche mais y a un ptit hic et si kelk1 peux m'aider aussi, c que ça affiche 4 lignes vide ensuite ça affiche les informations

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    re, je voulais juste dire que c'est bon, y a pas de problème avec l'affichage, c juste un réglage au niveau des paramètres de la JTable.
    alors Enjoy

Discussions similaires

  1. problème de couleur de cellule dans une JTable
    Par rprom1 dans le forum Composants
    Réponses: 3
    Dernier message: 04/04/2007, 00h01
  2. [swing] modifier l'ajout d'objet dans un JTable
    Par Invité dans le forum Composants
    Réponses: 2
    Dernier message: 17/05/2006, 13h02
  3. Problème de refresh dans une JTable
    Par vano dans le forum Composants
    Réponses: 3
    Dernier message: 04/05/2006, 14h57
  4. Réponses: 1
    Dernier message: 15/03/2006, 16h30
  5. [Jtable] problème de suppression dans une Jtable
    Par gianni17 dans le forum Composants
    Réponses: 1
    Dernier message: 02/12/2005, 18h36

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