Si tu utilises une JXTable, tu as meilleur temps d'utiliser des Highlighter, c'est prévu pour changer les couleurs de frontground et de background selon les lignes.
Ca s'utilise dans les dernières versions de SwingX avec un HighlightPredicate qui indique s'il faut ou nom utiliser la coloration.
Un petit exemple pour changer la couleur du texte d'une ligne (facile à transposer pour le background, le ColorHighlighter permet de tout définir) :
m_table.addHighlighter(new ColorHighlighter(null, Color.CYAN.darker(), null, Color.CYAN.darker(), new StatusHighlightPredicate()));
Avec :
1 2 3 4 5 6 7 8 9 10 11
| private class StatusHighlightPredicate implements HighlightPredicate {
@Override
public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
AbstractBusinessValidationModel obj = getSelectionInList().getFilteredList().get(m_table.convertRowIndexToModel(adapter.row));
if (obj != null && obj instanceof GedDocument) {
GedDocument doc = (GedDocument) obj;
return doc.isCheckedOut();
}
return false;
}
} |
Partager