Fonctionnement des renderer
Bonjour,
je suis à la recherche d'explication sur la gestion des renderer en swing. (pas la création de renderer). J'entend par là, la compréhension des instanciations des objets.
Exemple simple. Pour appliquer son propre renderer, il faut, sur une JTable, faire :
Code:
1 2 3
| //Set up renderer and editor for the Favorite Color column.
table.setDefaultRenderer(Color.class,
new ColorRenderer(true)); |
qui revient à faire de manière plus précise:
Code:
1 2 3 4 5 6 7
| TableModel model = new ColorTableModel();
JTable table = new JTable(model);
TableColumn column = table.getColumnModel().getColumn(2);
ColorRenderer renderer = new ColorRenderer(true);
column.setCellRenderer(renderer); |
source du code ColorRenderer: http://docs.oracle.com/javase/tutori...rRenderer.java
Dans ces 2 exemples, on voit parfaitement qu'il n'y qu'une seule création de l'objet (par
Code:
new ColorRenderer(true)
) et dans la classe ColorRenderer qui implemente logiquement TableCellRenderer, on trouve la fonction getTableCellRendererComponent qui retourne this, soit le component créé via le new.
Hors, plus tard, quand on va fouillé dans la JTable (JTable.class), lors de la récupération du renderer, on va récupérer le même objet pour chaque cellule ! comment est-ce possible ?
Xpmich