como utilizar el TableCellRenderer sobre un jtable???????

Hola a todos primero que nda muy buenos dias, espero puedan ayudarme mi problema es el siguiente, quiero poder redibujar bueno mas bien pintar una celda de mi jtable a la cual le implemento un defaulttableModel..
encontre un pequeó ejemplo donde se implementa este motodo pero no entiendo muy bien como trabaja..... aca se los dejo talvez puedan ayudarme..

class myDataModel extends DefaultTableModel implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable tabla, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
DefaultTableCellRenderer f = new DefaultTableCellRenderer();
if (value instanceof CellData && !isSelected) {
CellData b = (CellData)super.getValueAt(row, column);
f.setBackground(b.b);
f.setForeground(b.f);
f.setText(b.s);
return (Component)f;
} else if (hasFocus) {
CellData b = (CellData)super.getValueAt(row, column);
Color t =
new Color(255 - b.b.getRed(), 255 - b.b.getGreen(), 255 - b.b.getBlue());
f.setBackground(t);
f.setForeground(new Color(255 - t.getRed(), 255 - t.getGreen(),
255 - t.getBlue()));
f.setText(b.s);
return (Component)f;

} else {
return f.getTableCellRendererComponent(tabla, value, isSelected,
hasFocus, row, column);
}
}
}

SI Pudieran explicarme como funciona esto se los agradeceria mucho.. de antemano muchas gracias por la ayuda!!!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de JaimeItlzc

TableCellRenderer

class myDataModel extends DefaultTableModel implements TableCellRenderer {
           
public Component getTableCellRendererComponent(JTable tabla, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            DefaultTableCellRenderer f = new DefaultTableCellRenderer();
 
if (value instanceof CellData && !isSelected) {
            CellData b = (CellData)super.getValueAt(row, column);
             f.setBackground(b.b);
             f.setForeground(b.f);
             f.setText(b.s);
         return (Component)f;
} else if (hasFocus) {
           CellData b = (CellData)super.getValueAt(row, column);
           Color t =new Color(255 - b.b.getRed(), 255 - b.b.getGreen(), 255 - b.b.getBlue());
            f.setBackground(t);
            f.setForeground(new Color(255 - t.getRed(), 255 - t.getGreen(),255 - t.getBlue()));
            f.setText(b.s);
          return (Component)f;
} else {
            return f.getTableCellRendererComponent(tabla, value, isSelected,
            hasFocus, row, column);
     }
   }
}
Imagen de JaimeItlzc

getTableCellRendererComponent

getTableCellRendererComponent(), la implementacion de este metodo debe configurar el componente con el fin de representar el pasado estado y luego devolver el componente.

Aqui te dejo toda la informacion.
Tutorial JTable Oracle
Saludos.

Gracias

Graicas por la ayuda...hehehe