[JTable] Remplir depuis une requete sql
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.
http://img166.imageshack.us/img166/958/recherchenk9.jpg
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:
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