Bonjour à tous !

Je voudrais colorier une ligne sur deux dans mon tableau
j'ai donc procédé de la manière suivante ...les données s'affiche je peux les trier
mais pas moyen d'avoir une ligne sur deux en couleur... pourriez vous svp m'indiquer ce qui ne va pas dans mon code pour que je comprenne mieux...


En vous remerciant pour vos conseils

Jean-Marc



Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import java.awt.*;
 
public class Fenetre extends JFrame implements TableCellRenderer {
    private static TableCellRenderer tcr;
 
    public Fenetre(TableCellRenderer tcr){
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("Liste des PC ");
        this.setSize(500, 250);
 
        Object[][] data = {
                {"PC 1", "PC Fixe", "MOI","OK","24"},
                {"PC2", "PC Fixe", "TOI","OK","24"},
                {"PC3", "PC Fixe", "TOTO","A REMPLACER","24"},
                {"PC4", "PC Fixe", "GUDULE","A REMPLACER","24"},
 
 
 
 
 
        };
 
 
 
         String  title[] = {"Nom Machine", "Type", "Utilisateur","Etat","Ecran"};
        JTable tableau = new JTable(data, title);
        tableau.setBackground(Color.YELLOW);
        DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
        rightRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
        tableau.getColumn("Type").setCellRenderer( rightRenderer );
        tableau.getColumn("Utilisateur").setCellRenderer( rightRenderer );
        tableau.getColumn("Etat").setCellRenderer( rightRenderer );
        tableau.getColumn("Ecran").setCellRenderer( rightRenderer );
        tableau.setAutoCreateRowSorter(true);
        this.getContentPane().add(new JScrollPane(tableau));
 
    }
 
    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        Component comp = this.tcr.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        if ((row & 1) == 0) { // Ligne paire
            comp.setBackground(Color.RED);
        } else { // Ligne impaire
            comp.setBackground(Color.BLUE);
        }
        return comp;
    }
 
    public static void main(String[] args){
        Fenetre fen = new Fenetre(tcr);
        fen.setVisible(true);
    }
}