Bonjour à tous,

Je suis en train d'ecrire un mini moteur de recherche pour mon programme.
J'arrive a produire la requete dynamiquement en fonction des champs saisi par l'utilisateur (ean, ttcmax, ttcmin, fournisseur, champs principal) voir image ci dessous.




Mon probleme : je souhaiterais que le resultat de la recherche soit renseigné dans une jtable et ce au fur et à mesure que l'utilisateur saisit sa recherche.


Mon probleme : je comprend pas bien comment fonctionne l'objet tablemodel pour remplir une jtable.
Et j'aimerai que si l'utilisateur efface la recherche la jtables soit recalculée de facon automatique a chaque keyrelease.


J'ai bien essaye de cette facon mais les lignes s'ajoutent les unes aux autres dans la jtables :
De plus le resultat n'est pas tres satifaisant du fait que j'ai trouvé ce code deja pret et donc je comprend pas tout.


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
requete = "select * from t_produits " + general + " " + ean + " " + mini + " " + maxi + ";";
            System.out.println(requete);
 
            // TableModel definition
 
            String[] tableColumnsName = {"col 1", "col 2", "col 3"};
            DefaultTableModel aModel = (DefaultTableModel) aTable.getModel();
            aModel.setColumnIdentifiers(tableColumnsName);
 
	    // the query
 
            try {
                Statement stmt = (Statement) connection.createStatement();
                rs = stmt.executeQuery(requete);
            } catch (SQLException ex) {
                System.out.println("CRASH REQUETE");
            }
 
 
	   // Loop through the ResultSet and transfer in the Model
           java.sql.ResultSetMetaData rsmd = rs.getMetaData();
           int colNo = rsmd.getColumnCount();
           while (rs.next()) {
                Object[] objects = new Object[colNo];
                // tanks to umit ozkan for the bug fix!
                for (int i = 0; i < colNo; i++) {
                    objects[i] = rs.getObject(i + 1);
                }
                aModel.addRow(objects);
            }
            aTable.setModel(aModel);
            aTable.repaint();
Merci d'avance