Como integrar este código para conseguir o que quero da jtable

Esta é minha tabela, que faz consulta no banco de dados em todas as colunas, exceto a de situação, que é preenchida condicionalmente, após calulos feitos com a data. Funcionando bacanca bacana

Figura 1 -> Jtable com uma cor so.
http://img108.imageshack.us/my.php?image=tabela1ku2.jpg

Quero incrementar o seguinte… Com base no conteudo da célula da coluna 8 situacao,
preciso colorir a linha. (a imagem abaixo esta alterada para demonstrar o que preciso)

Figura 2 -> Jtable com uma cor so.

http://img108.imageshack.us/my.php?image=tabela2bb5.jpg

//Aqui vai o cógido que gera a primeira figura 1, so que ele coloca uma cor apenas… obsevando a primeira linha da jtable.

      //aqui coloco na coluna situacao se esta vencida ou nao, com base em um calculo com datas.
     for (int row=count-1; row>=0; row--){ 
            try {
                
                String pegadata = (String) jTable1.getValueAt(row,6);
                String pegahora = (String) jTable1.getValueAt(row,7);
                
                java.util.Date dataHora =  sdf.parse(pegadata + " " + pegahora);
                java.util.Date data1 = dataHora;  
        
                 //
              
        
        java.util.Date data2 =  sdf.parse("25/04/2008 09:52:00");
                double diasDiferenca = ((double) (data1.getTime() - data2.getTime())) / (24 * 60 * 60 * 1000);   
                
            if (diasDiferenca <0){
             situacao = "Vencida";
             jTable1.setForeground(Color.green);
             
            }
                else if (diasDiferenca>=0 && diasDiferenca<=0.083811226846592){
                situacao = "Crítica";        
              jTable1.setForeground(Color.BLUE);
               
                }
                    else if (diasDiferenca>0.083811226846592 && diasDiferenca<=1.0){
                    situacao = "Vencendo";        
              jTable1.setForeground(Color.DARK_GRAY);
       
                    }
                        else
                        {
                        situacao = "não vencido";
          
                        }  
                jTable1.setValueAt(situacao, row, 8);

 
            } catch (ParseException ex) {
                Logger.getLogger(Cad_osm.class.getName()).log(Level.SEVERE, null, ex);
            }

sei que posso utilizar algo do tipo do codigo abaixo… mas, sinceramente não consegui em nenhuma das milhares de tentativa…

Agradeço desde já, a ajuda.




 TableCellRenderer tcr = new Colorir();
    TableColumn column = 
      tabela.getColumnModel().getColumn(1);
	column.setCellRenderer(tcr);

 class Colorir extends JLabel implements TableCellRenderer{
  public Component getTableCellRendererComponent(
     JTable table, Object value, boolean isSelected,
        boolean hasFocus, int row, int column){
    
 
                
            if (Situ <0){
             situacao = "Vencida";
             jTable1.setForeground(Color.green);
             
            }
                else if (diasDiferenca>=0 && diasDiferenca<=0.083811226846592){
                situacao = "Crítica";        
              jTable1.setForeground(Color.BLUE);
               
                }
                    else if (diasDiferenca>0.083811226846592 && diasDiferenca<=1.0){
                    situacao = "Vencendo";        
              jTable1.setForeground(Color.DARK_GRAY);
       
                    }
                        else
                        {
                        situacao = "não vencido";
          
                        }  
                jTable1.setValueAt(situacao, row, 8);

 
            } catch (ParseException ex) {
                Logger.getLogger(Cad_osm.class.getName()).log(Level.SEVERE, null, ex);
            }
     	
     return this;   	
 
     class Colorir extends JLabel implements TableCellRenderer{
  public Component getTableCellRendererComponent(
     JTable table, Object value, boolean isSelected,
        boolean hasFocus, int row, int column){
  
  public void validate() {}
  public void revalidate() {}
  protected void firePropertyChange(String propertyName,
      Object oldValue, Object newValue) {}
  public void firePropertyChange(String propertyName,
      boolean oldValue, boolean newValue) {}  
 }}

:frowning:
Poxa!
Será que não tem ninguém pra me ajudar?