Article n° 26

En ligne: 2 juillet 2010
Modifié le: 2 juillet 2010
Popularité: 16
Nb visites: 23002

mots clés

IHM , Java

Java

Afficher le résultat d’une requête dans un JTable

Par: Chris

Le composant de la librairie Java Swing JTable est très puissant mais il n’est pas toujours facile à utiliser lorsque l’on débute. L’exemple qui suit montre comment le programmer pour afficher le résultat d’une requête SQL.

Présentation

L’exemple suivant montre comment afficher le contenu de la table T_COMPOSITEURS_TMP définie dans base de données Derby nommée mediatheque. Vous trouverez la description de cette base dans l’article de présentation de derby dans la rubrique SGBD et SQL ici.

Vous pourrez trouver également des explications sur les composants JDBC utilisés dans l’article traitant de ce sujet dans la rubrique Java que vous pourrez trouver ici.

Principe

Nous allons dériver une classe AbstractTableModel qui utilisera les données d’un ResultSet qui contiendra le résultat de la requête SQL.

Pour l’exemple, nous intégrerons le JTable dans un JPanel, ce qui nous permettra de l’afficher simplement dans une fenêtre. Le diagramme suivant, représente les différents composants utilisés :

C’est la classe ResultSetTableModel qui est chargée de fournir les données utiles au JTable en redéfinissant les méthodes suivantes :

public int getColumnCount()

qui renvéra le nombre de colonnes,

public int getRowCount()

pour le nombre de lignes,

public String getColumnName( int column )

pour que le JTable puisse utiliser les noms des champs comme titres de colonnes,

public Object getValueAt(int rowIndex, int columnIndex)

pour que le JTable puisse afficher dans les cellules les valeurs des champs.

Ce qui donne le code suivant :

Le code du panneau chargé de généré le panneau contenant le JTable est le suivant :

Il ne nous reste plus qu’à créer une petite classe de test :

Remarque : Avant d’exécuter ce programme, n’oubliez-pas d’ajouter le fichier derby.jar dans la liste des librairies utilisées par le projet.

L’exécution de ce programme devrait vous donner l’écran suivant :

Conclusion

Cet exemple vous a montré comment afficher le résultat d’une requête (ResultSet) dans un JTable mais vous remarquerez que l’exemple fourni ne permet pas de modifier les données directement à partir du JTable. Une solution sera d’utiliser des requêtes dites live, c’est à dire des ResultSet modifiables puis d’adapter le code du TableModel pour permettre la saisie dans les cellules. Ce sera l’occasion d’un autre article.


SPIP |