clyrix
20-02-2008, 20:24
ciao a tutti! 
dopo aver cercato in lungo e in largo una soluzione al mio problema, mi rivolgo a voi, sperando di mettere fine alle mie pene...
Nella mia interfaccia ho una JTable.
per poterne colorare determinate celle, ho inserito in un array il numero di riga della cella da colorare, dunque gli indici dell'array corrispondono alle colonne e il contenuto corrisponde all'unica cella da colorare in ciascuna colonna.
Sono riuscita a farlo definendo un Renderer.
il problema è cha da un certo punto in poi si incanta: vale a dire che il renderer delle ultime colonne resta uguale per tutte, indipendentemente dai valori contenuti nell'array.
inoltre se sposto la scroll bar del JScrollPane contenente la tabella, i colori delle ultime colonne vengono semicancellati...
con gli updateUI non ho risolto nulla.... non so che pesci prendere.
Questa è la ridefinizione del Renderer. vittime è il nome dell'array.
public class MyTableRenderer 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);
for (int i=0; i<npagine; i++)
{
if (column==i)
cell.setBackground(row==vittime[i] ? Color.cyan : Color.white);
}
return cell;
}
}
lo uso qui:
mtr = new MyTableRenderer();
for (int c=0;c<vittime.length;c++)
{
if (vittime[c]!=-1)
mvtab.getColumnModel().getColumn(c).setCellRenderer(mtr);
			
}
			
se avete un consiglio, qualunque consiglio, ditemi pure! :D
dopo aver cercato in lungo e in largo una soluzione al mio problema, mi rivolgo a voi, sperando di mettere fine alle mie pene...
Nella mia interfaccia ho una JTable.
per poterne colorare determinate celle, ho inserito in un array il numero di riga della cella da colorare, dunque gli indici dell'array corrispondono alle colonne e il contenuto corrisponde all'unica cella da colorare in ciascuna colonna.
Sono riuscita a farlo definendo un Renderer.
il problema è cha da un certo punto in poi si incanta: vale a dire che il renderer delle ultime colonne resta uguale per tutte, indipendentemente dai valori contenuti nell'array.
inoltre se sposto la scroll bar del JScrollPane contenente la tabella, i colori delle ultime colonne vengono semicancellati...
con gli updateUI non ho risolto nulla.... non so che pesci prendere.
Questa è la ridefinizione del Renderer. vittime è il nome dell'array.
public class MyTableRenderer 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);
for (int i=0; i<npagine; i++)
{
if (column==i)
cell.setBackground(row==vittime[i] ? Color.cyan : Color.white);
}
return cell;
}
}
lo uso qui:
mtr = new MyTableRenderer();
for (int c=0;c<vittime.length;c++)
{
if (vittime[c]!=-1)
mvtab.getColumnModel().getColumn(c).setCellRenderer(mtr);
}
se avete un consiglio, qualunque consiglio, ditemi pure! :D