Retourner la couleure d'une cellule d'un JTable

Signaler
Messages postés
31
Date d'inscription
jeudi 14 juin 2007
Statut
Membre
Dernière intervention
20 avril 2008
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Bonsoir,
Dans mon code je cherche à retourner les couleurs de chaque cellule de mon JTable,j'ai cherché dans les tutoriols mais j'ai pas trouvé une reponse.
 SVP si quelcun a une reponse me dit.
Bonne nuit

2 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

J'espère avoir bien compris ta question.

public Color[][] getColors() {
    Color[][] colors = new Color[table.getRowCount()][table.getColumnCount()];
       
    for (int row = 0; row < table.getRowCount(); ++row) {
        for (int column = 0; column < table.getColumnCount(); ++column) {
            TableCellRenderer cellRenderer = table.getCellRenderer(row, column);
            Component comp = cellRenderer.getTableCellRendererComponent

                                 (table, null, true, false, row, column);
            colors[row][column] = comp.getBackground();
            }
        }
    return colors;
}
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

J'ai fait des tests, donc j'ai oublié de remettre le paramètre isSelected de la méthode getTablCellRendererComponent à false.

Ceci recupère les couleurs des cellules lorsqu'elles sont non séléctionnées et n'ont pas le focus.

public Color[][] getColors() {
    Color[][] colors = new Color[table.getRowCount()][table.getColumnCount()];
       
    for (int row = 0; row < table.getRowCount(); ++row) {
        for (int column = 0; column < table.getColumnCount(); ++column) {
            TableCellRenderer cellRenderer = table.getCellRenderer(row, column);
            Component comp = cellRenderer.getTableCellRendererComponent
                                 (table, null, false, false, row, column);
            colors[row][column] = comp.getBackground();
            }
        }
    return colors;