Ciao, forse hai bisogno di un paio di modifche. Aggiungi una variabile Color nel tuo rendered e aggiungi anche un controllo sul numero di riga. Ad esempio:
codice:
public class CustomTableCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = -3504101284514011307L;
private Color color;
public CustomTableCellRenderer(Color color) {
super();
this.color = color;
}
public Component getTableCellRendererComponent(JTable table, Object obj, boolean isSelected, boolean hasFocus,
int row, int column) {
Component cell = super.getTableCellRendererComponent(table, obj, isSelected, hasFocus, row, column);
if (row == 0) {
cell.setBackground(color);
} else {
cell.setBackground(new Color(255, 255, 255));
}
return cell;
}
}
Non ho capito un bel po di cose nel tuo listener (USA I TAG CODE!!!) tra tutti i cicli strani che vedo, comunque, pulito un po', con un rapaint() alla fine, prova una cosa del genere:
codice:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String string1 = (String) combo1.getSelectedItem();
TableColumn tcol;
int index = 0;
if (string1.equals("Item 1")) {
int B = 4;
// int index1 = 0;
for (int i = 0; i < B; i++) {
tcol = table1.getColumnModel().getColumn(i);
tcol.setCellRenderer(new CustomTableCellRenderer(Color.RED));
// index1 = i;
}
table1.setValueAt("pippo1", index, 0);
table1.setValueAt("pippo1" + "/" + "pippo2", index, 1);
table1.setValueAt("pippo1" + "-" + "pippo2", index, 2);
}
table1.repaint();
}
Non ho testato, se non dovesse colorarsi tutta la prima riga al click del bottone, prova uno SwingUtilities.invokeLater per il repaint.