[JTable] Redéfinition pour chaque cellule
Bonsoir
J'aurai au moins une question sur les JTables.
En fait j'ai fait un tableau avec une colonne date et 2 autres pour la température.
J'ai du redéfinir le format d'affichage de la première colonne pour avoir un affichage du style xx/xx/xxxx en utilisant extends DefaultTableCellRenderer
Les deux autres colonnes ne posent pas de souci particulier puisque ce sont des doubles
J'ai voulu m'amuser et j'ai colorié 1 ligne sur 2. C'est là où ma question arrive
Je suis obligé d'avoir le même code dans mon affichage de date et dans mon affichage par défaut des cellules ce que je trouve inefficace.
Une idée de comment palier le problème ?
Cellule par défaut :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class FondCellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable tableau, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(tableau, value, isSelected, hasFocus, row, column);
if((row % 2) == 1)
setBackground(Color.YELLOW);
else
setBackground(Color.WHITE);
return this;
}
} |
Cellule pour les dates :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class AffichageDateCelleRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable tableau, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(tableau, value, isSelected, hasFocus, row, column);
Calendar maintenant = (Calendar) value;
int jour = maintenant.get(Calendar.DAY_OF_MONTH);
int mois = maintenant.get(Calendar.MONTH);
int annee = maintenant.get(Calendar.YEAR);
String affichage = ((jour < 10)?"0":"") + jour + "/" + ((mois < 10)?"0":"") + mois + "/" + annee;
setText(affichage);
if((row % 2) == 1)
setBackground(Color.YELLOW);
else
setBackground(Color.WHITE);
return this;
}
} |