come precedentemente detto devi crearti il tuo TableCellRenderer; nel seguente esempio specifico alle colonne 0 e 2 di cambiare il colore dello sfondo e del testo quando non sono selezionate. Inoltre specifico un diverso sfondo e colore del testo per le celle selezionate:

codice:
    static class MyTableRenderer extends DefaultTableCellRenderer{

   public Component getTableCellRendererComponent (JTable table, Object value, boolean selected, 
                   boolean focused, int row, int column){
            super.getTableCellRendererComponent(table, value, selected, focused, row, column);
            Color c = table.getBackground();
            if (!selected){
                if(column==0||column==2){
                    setBackground(Color.red);
                    setForeground(Color.black);
                
                }else{
                    setBackground(c);
                    setForeground(Color.black);
                }
            }else{
                setForeground(Color.white);
                setBackground(Color.blue);
            }
            return this; 
   }
}
il renderer deve poi essere assegnato alla table, io conosco solo due metodi:
o lo assegni ad ogni colonna:
codice:
            tableRenderer tr = new tableRenderer();
            for(int i=0; i<table.getColumnCount();i++){
                table.setDefaultRenderer(table.getColumnClass(i), tr);
            }
oppure lo assegni al tipo di oggetti presenti nella table:
codice:
table.setDefaultRenderer(Integer.class, mtr);
ciao