Vorrei modificare il colore di sfondo delle righe di una JTable in modo da alternare i colori.

Ho scritto questo render e sembra funzionare:

codice:
public class AlternateTableCellRender extends DefaultTableCellRenderer {
    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int col) {
        JLabel label = new JLabel("");
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setFont(new Font("Dialog", Font.PLAIN, 12));
        label.setText(value.toString());
        label.setOpaque(true);
        label.setForeground(Color.black);

        if (row % 2 == 0) {
            label.setBackground(Color.white);
        } else {
            label.setBackground(new Color(204, 204, 255));
        }
        
        return label;
    }
}
Il risultato è questo:



(non guardate i tag che sono sparati a caso)


Quello che vorrei fare è fare in modo che l'alternanza non sia una riga si ed una no ma variabile a seconda del numero di categorie presenti (nel senso: tutti le righe objective c in bianco, tutto python in azzurrino ecc) :master:

Come posso modificare il render? Ho capito che il "problema" è in if (row % 2 == 0) ma non saprei come modificarlo...

Grazie