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