Salve a tutti.
Ho appena creato un render che colora una singola cella di una JTable
codice:
public class CellRender extends DefaultTableCellRenderer{
@Override
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);
cell.setForeground(Color.GREEN);
return cell;
} }
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());
I problemi che riscontro sono 2:
1 - così facendo, la cella si colora solo quando l'utente la seleziona, 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 )
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.