You could either override the prepareRenderer method of JTable, or create a custom TableCellRenderer. Below is semi-pseudo code for the first method
Code java:
//this set contains the indexes of the columns which have JButtons
Set<Integer> buttonColumns = new HashSet<Integer>();
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int col){
JComponent c = (JComponent)super.prepareRenderer(renderer,row,col);
if ( !buttonColumns.contains(col){
if ( ..check for condition to color red..){
c.setBackground(Color.RED);
}else{//color to default
c.setBackground(getBackground());
}
c.setOpaque(true);
}else{
c.setBackground(c.getBackground());
c.setOpaque(false);
}
return c;
}
The above will have to be messed with a bit to get it to work with what you have, but will hopefully get you started.