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 :
qui revient à faire de manière plus précise:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //Set up renderer and editor for the Favorite Color column. table.setDefaultRenderer(Color.class, new ColorRenderer(true));
source du code ColorRenderer: http://docs.oracle.com/javase/tutori...rRenderer.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Dans ces 2 exemples, on voit parfaitement qu'il n'y qu'une seule création de l'objet(par
Code : Sélectionner tout - Visualiser dans une fenêtre à part ColorRenderer) et dans la classe ColorRenderer qui implemente logiquement TableCellRenderer, on trouve la fonction getTableCellRendererComponent qui retourne this, soit le component créé via le new.
Code : Sélectionner tout - Visualiser dans une fenêtre à part new ColorRenderer(true)
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
Partager