Olá…
Tenho uma JTable que possuirá várias cores nas linhas… já criei uma classe extendendo DefaultTableCellRenderer que pinta a linha mas só consigo pintar de uma em uma, ou seja, apenas 1 linha estará pintada…
aí vai a classe:
public class ColorCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer{
private Color colorBackground;
private int row;
private Color colorForeground;
public ColorCellRenderer(Color colorBackground,
Color colorForeground,
int row){
setOpaque(true);
this.colorBackground=colorBackground;
this.row=row;
this.colorForeground=colorForeground;
}
public Component getTableCellRendererComponent(
JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column){
if (isSelected) {
this.setBackground(Color.cyan);
this.setForeground(Color.white);
}else {
if (row == this.row) {
this.setBackground(colorBackground);
this.setForeground(colorForeground);
}else {
this.setBackground(null); //preciso que esta cor (ao invés de voltar ao normal) fique na cor que estava antes..
this.setForeground(null); //por exemplo: se a cor da linha era amarela, deve ficar amarela e não voltar ao padrão branco
}
}
this.setText(value.toString());
return this;
}
}
e outra… mesmo que eu consiga pintar apenas uma linha ignorando as outras, eu utilizaria esta classe para cada linha pintada (dentro dum for, por exemplo), ou faria um render para cada caso em especial?
desde já obrigado…
