Esempio: Ho cercato di mio pugno di scrivere uno stralcio di codice raccapezzato qua e la (una parte dal tutorial e un altra parte da alcuni forum) e mi sono accorto che in parte ha funzionato e in parte ha lasciato spazio a diversi dubbi... lo posto:
codice:
class myRender extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent (table, value, isSelected, hasFocus, row, column);
if(row==0) cell.setBackground(Color.red);
else
cell.setBackground(Color.green );
return cell;
}
}
poi per far si che la tabella abbia come render questa classe:
codice:
mr = new myRender();
table.getColumnModel().getColumn(0).setCellRenderer(mr);
Il risultato che ottengo è di avere la prima cella della prima colonna colorata di rosso le altre celle (sempre della prima colonna) colorate di verde
Ora avrei qualche domanda:
1) Perchè posso assegnare il render SOLO alla colonna?? non c'è un getRowModel() o un getRowRender()??
2) l'unico modo per richiamare il metodo di quella classe (che mi colora le celle) è scrivere table.getColumnModel().getColumn(0).setCellRendere r(mr);??
3) Non posso assegnare semplicemente il render alla tabella facendo table.setCellRender(myRender) e poi richiamare metodi specifici di quella classe che mi colorino le celle allo scatenarsi di detrminati eventi??
Grazie Mille