Bonjour,
Je suis en dehors de mon labo donc du coup pour les codes sources il faudra que je télécharge d'abord les sources elles ne sont pas disponibles là maintenant, j'ajouterais les extraits de code
(je dis tout de suite que je ne respecte pas forcément les conventions d'écriture Java, je fais cela un peu "à la volée", ...) dans quelques minutes/heures.
Description/observation de ce qui me fait dire que ce que j'ai produit comme programme ne me rassure pas sur l'état d'avancement de mon projet:
J'ai une application qui effectue une connexion avec une base de données, j'ai aucun soucis pour extraire les données et les afficher dans une de mes deux JTable.
La première affiche des données on va dire brutes, la seconde affiche des données en provenance d'une autre Table de la base de données avec des données un peu plus précises.
La première JTable se trouve dans une JFrame, la seconde dans une JPanel.
on accède à ce JPanel via l'appui d'un onglet (ou via "la sélection forcée" en fonction de certains événements...).
La première JTable fonctionne à merveilles, aucun soucis, bon c'est lent mais c'est peut-être ma manière d'approcher la chose qui n'est pas optimisée (le refraichissement du contenu suite à des ajouts n'est pas instantané en tous cas).
Par contre la seconde JTable, elle, me pose soucis: j'ai 20 enregistrements à afficher dans cette table, et elle n'affichera jamais qu'une seule "row" (ligne).
Pourtant j'ai comparé et parcouru les instructions carrément en step by step et, comparant à la fois le Modèle (AbstractTableModel) et le "renderer" (TableCellRenderer0) il y a de très fortes similitudes jusqu'aux noms des objets.
Le "renderer" lui n'est appelé que pour une seule "row"... alors que la boucle faisant appel à la méthode pour ajouter une ligne dans la table (comme avec la première JTable) est, elle, appelée 20 fois.
J'ai "watché" avec le débugger les différentes listes disponibles dans le Modèle et dans le "renderer", elles contiennent bien les données, il y en a bien 20 dans le tableau Donnees[][] du Modèle, ma liste représentant les enregistrements en provenance de la base de données contient bien 20 éléments.
Mes questions:
1. Est-ce une bonne idée d'avoir deux JTable sur la même fenêtre ?
2. Comment expliquer que JTable fasse appel à son "renderer" qu'une seule fois sur 20 ?
Partager