color seleccion Jtable

el color de fondo al dar click el la fila se coloca de un color solo en las celdas que son de tipo texto por que las columnas que son de tipo boolean y contiene check box no sucede lo mismo y se ve discornidana la tabla

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package model;

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.table.TableCellRenderer;

/**
 *
 * @author yosef77
 */

public class TableApuestaRenderer extends JCheckBox implements TableCellRenderer  {
   
    Font normal = new Font( "Arial",Font.PLAIN,12 );
    Font negrilla = new Font( "Helvetica",Font.BOLD,12);
    Font cursiva = new Font( "Times new roman",Font.ITALIC,12 );
     private JComponent component = new JCheckBox();
   
   

    private static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
    //private JComponent component = new JCheckBox();    
   
   
    public TableApuestaRenderer() {
       
        setOpaque(true);
       // super();
    //setHorizontalAlignment(JLabel.CENTER);
    //setIcon(new ColorableMetalCheckBoxIcon());
    //setBorderPainted(true);
    }
   

   
 
   
 
   
 
    @Override
public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected,boolean hasFocus, int row, int column)
{  
    //Color de fondo de la celda
 
      JLabel etiqueta = new JLabel();
       
        etiqueta.setOpaque(true);
        if (row % 2 == 0) {
            etiqueta.setBackground(new Color(255, 255, 200));
        } else {
            etiqueta.setBackground(Color.white);
        }
   
        if (column == 0) {
            String nombre = (String) value;
            etiqueta.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
           
                etiqueta.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/on.png")));
           
           
        }
       
        if (column ==2) {
            String nombre = (String) value;
            etiqueta.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
           
                etiqueta.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/off.png")));
           
           
        }
       
       
       
         if (column == 1) {
            String nombre = (String) value;
            etiqueta.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
            if (nombre.startsWith("V")) { //Hombre
                etiqueta.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/hombre.png")));
            } else if (nombre.startsWith("&")) { //Mujer
                etiqueta.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/mujer.png")));
            }
            etiqueta.setText(value.toString().substring(1, nombre.length()));
        }
         
         
         
           
        else {
            etiqueta.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
            etiqueta.setText(value.toString());
        }
        //color de fondo de la celada cuando es seleccionada
        if (isSelected) {
            etiqueta.setBackground(new Color(0,153,204));
        }
       
        //else
        //{
          // etiqueta.setBackground(new Color(255, 255, 200));
        //}
   
   
         
         if (hasFocus) {
                setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
            } else {
               setBorder(noFocusBorder);
            }
       
       
     
        return etiqueta;
       
     

}

       
   

   
}

esto es el codigo que uso y no logro que los chechbox al seleccionarlos tomern el mismo color de fondo que las demas celdas de tipo texto :(