Ciao ragazzi,
esiste una classe capace di farmi gestire le celle di una JTable in maniera "naturale"?
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 ):
Dove sbaglio?Codice PHP: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?

Rispondi quotando