J'essaie d'ajouter une icône à une colonne JTable particulier en spécifiant mon propre CellRenderer de table ci-dessous (based on parts of this tutorial):Ajout d'une icône à JTable en remplaçant DefaultTableCellRenderer
public class MyTableCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
JLabel label = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(column == MyTableModel.IMAGE_COLUMN){
String status = (String)value;
Icon icon = StatusImageUtil.getStatusIcon(status);
if(icon == null){
label.setText(status);
}else{
label.setIcon(icon);
}
}
return label;
}
}
Le code ci-dessus fonctionne, mais:
- Toutes les cellules ont l'icône au lieu de celui spécifique i spécifié dans veux l'instruction if
- cellule MyTableModel.IMAGE_COLUMN qui devrait seulement avoir une icône a également texte.
Merci à l'avance
merci, ne savait pas que la même étiquette est réutilisée pour toutes les cellules de table. En utilisant le code ci-dessus, j'ai toujours les mêmes résultats. Je l'ai résolu en mettant à zéro l'icône juste après avoir transformé le moteur de rendu de la table en JLabel. – n002213f
yup mon adivce n'a pas aidé parce que j'ai oublié la colonne == MyTableModel.IMAGE_COLUMN test – Peter