Scusa ma io in queste righe non vedo l'uso del "tuo" CellRender.Originariamente inviato da rexjaa
Mentre nel file dove inizializzo lo cella ho inserito
codice:table.getColumnModel().getColumn(0).setCellRenderer(new DefaultTableCellRenderer()); table.getColumnModel().getColumn(1).setCellRenderer(new DefaultTableCellRenderer()); table.getColumnModel().getColumn(2).setCellRenderer(new DefaultTableCellRenderer()); table.getColumnModel().getColumn(3).setCellRenderer(new DefaultTableCellRenderer()); table.getColumnModel().getColumn(4).setCellRenderer(new DefaultTableCellRenderer()); table.getColumnModel().getColumn(5).setCellRenderer(new DefaultTableCellRenderer());
No, se assegni il tuo CellRender ad una colonna specifica, tutte le celle di quella colonna avranno il testo verde .... indipendentemente dalla/e righe/celle selezionate. Il tuo setForeground(Color.GREEN) è una impostazione che "sovrascrive" qualunque logica che DefaultTableCellRenderer ha per determinare il foreground.Originariamente inviato da rexjaa
1 - così facendo, la cella si colora solo quando l'utente la seleziona
La questione essenziale è che il renderer da solo non fa nulla. Una cella viene rinfrescata o quando l'utente interagisce con la cella (es. termina l'editing), o l'utente scrolla la tabella (e la cella (ri)appare magari) o quando è il table model che notifica la "view" di un cambiamento.Originariamente inviato da rexjaa
io invece dispongo del valore della riga e della colonna della cella che vorrei colorare quando preferisco io, senza dover attendere un input(vorrei quindi che il render prendesse in ingresso 2 valori interi che corrispondono alla riga e alla colonna della cella e la colorasse )
Quindi certamente potresti mettere nel tuo renderer 2 variabili riga/colonna per colorare solo quella cella ma poi devi far causare il refresh in qualche modo. E non è il renderer che può/sa farlo.
Questa non l'ho capita ... nel senso che come ho detto prima, il tuo CellRender assegnato ad una colonna, colora il foreground di tutte le celle della colonna.Originariamente inviato da rexjaa
2 - se coloro 2 celle di una stessa colonna, vengono colorate anche tutte le celle di quella colonna comprese tra la prima e la seconda cella selezionata.