1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| import java.awt.Color;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class TacheRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
public TacheRenderer() {
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Tache tache = TacheTableModel.getTask(table, row);
Component component = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
Color bgColor = null;
if ( tache.getElapsedTime()>tache.getDureePrevue() ) {
// a duré trop longtemps
bgColor = Color.RED;
}
else if ( tache.isStarted() ) {
// else if ( tache.hasBeenRan()() ) { // pour afficher en vert si tache exécutée au moins une fois, même si arrêtée
bgColor = Color.GREEN;
}
Color fgColor;
if ( bgColor!=null ) {
if ( isSelected ) {
// pour différencier les lignes sélectionnées
bgColor = bgColor.darker();
}
fgColor = Color.WHITE;
}
else {
// couleur standard on est obligé de faire ça avec le DefaultTableCellRenderer, qui mémorise les couleurs appliquées
if ( isSelected ) {
bgColor = table.getSelectionBackground();
fgColor = table.getSelectionForeground();
}
else {
bgColor = table.getBackground();
fgColor = table.getForeground();
}
}
component.setForeground(fgColor);
component.setBackground(bgColor);
return component;
}
} |
Partager