Salve a tutti,
in un mio progetto mi sono praticamente impantanato su questo problema: non riesco a colorare in maniera dinamica una o più determinate celle della mia JTable.
Ho una JTable di stringhe e ho implementato il renderer in questa maniera:
codice:
public class CustomTableCellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
//Component c = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
setOpaque(true);
label.setHorizontalAlignment(SwingConstants.CENTER);
if (...) {
label.setBackground(Color.RED);
}
return label;
}
}
Nella classe in cui disegno la tabella ho instanziato il renderer per ogni colonna così:
codice:
table.getColumnModel().getColumn(0).setCellRenderer(new CustomTableCellRenderer());
table.getColumnModel().getColumn(1).setCellRenderer(new CustomTableCellRenderer());
Il mio problema è che a priori non riesco a stabilire quale cella occorre colorare, non sono riuscito a trovare la condizione che fa al caso mio in quel benedetto if colorato di rosso... Mi servirebbe una funzione del tipo coloraCella(riga,colonna,colore), che chiamo all'occorrenza e che mi vada a colorare la cella corrispondente... Come faccio ad ottenere una cosa del genere??