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:
Nella classe in cui disegno la tabella ho instanziato il renderer per ogni colonna così: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; } }
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??codice:table.getColumnModel().getColumn(0).setCellRenderer(new CustomTableCellRenderer()); table.getColumnModel().getColumn(1).setCellRenderer(new CustomTableCellRenderer());

Rispondi quotando