Pensavo di avere inviato la risposta, ma nn risulta dal forum..allora riscrivo...

Grazie della correzione degli errori, infatti ora ho modificato così il metodo in questione:

codice:
public Object getValueAt(int row, int col) {

           //Seleziona il contatto
            Contact c = contatti.get(row);
            switch (col){
                case 0: return c.getName();
                case 1: return c.getTel();
            }
            return null;
        }

Adesso devo:

1. aggiungere un'icona (uguale per tutti) per ogni contatto
2. fare un metodo di ricerca ke aggiorni subito la tableModel

Per il primo problema ho provato ad aggiungere una colonna alla tabella per metterci dentro l'icona:

codice:
public Object getValueAt(int row, int col) {

           ImageIcon icon = new ImageIcon(getClass().getResource("/images/smile.png"));

            //Seleziona il contatto
            Contact c = contatti.get(row);
            switch (col){
                case 0: return icon;
                case 1: return c.getName();
                case 2: return c.getTel();
            }
            return null;
        }
Ma facendo così mi stampa il percorso dell'icona invece dell'icona...esiste un modo più appropriato per fare questa cosa?