Sono una cosa antipaticissima.
Ho cercato di creare una funzione di grado di colorare delle celle a piacimento ( su una tabella già creata ), ma niente da fare. La gestione è davvero troppo ingarbugliata e sembra funzionare in modo anomalo.
Questo è il codice della funzione che dovrebbe colorare le celle ( i valori negli array servono ad individuare le celle da colorare ):
Codice: Seleziona tutto
public void coloraCella(final int righe[],final int colonne[]){
for (int i=0;i<righe.length;i++){
final int indice=i;
tabella.getColumnModel().getColumn(colonne[i]).
setCellRenderer(
new 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);
System.out.println(row + " " + column);
if(row==righe[indice] && column==colonne[indice]){
cell.setBackground( Color.green );
System.out.println("?");
}else{
if (!cell.getBackground().toString().equals("java.awt.Color[r=0,g=255,b=0]")){
cell.setBackground( Color.white );
System.out.println("!");
}
}
return cell;
}
}
);
}
}
Richiamando la funzione nel modo seguente:
int t[]={0,1};
int y[]={2,2};
tabellaConti.coloraCella(t,y);
la cella relativa alla prima riga rimane bianca ( e la cella relativa alla seconda riga viene colorata )
Invece in questo modo:
int t[]={0,1};
int y[]={2,3};
tabellaConti.coloraCella(t,y);
La funzione lavora bene ( le due celle vengono colorate correttamente ).
Avete consigli?

