Questo è il ListSelectionListener (nell'esempio, ho fatto in modo che non si possa selezionare la terza colonna, puoi adattarlo come vuoi):

codice:
   @Override
   public void valueChanged(ListSelectionEvent lse) {
      if ( !lse.getValueIsAdjusting() ) {
         int numColonna = tabella.getSelectedColumn();
         if (numColonna == 2) {
            // Non voglio che si possa selezionare la terza colonna
            tabella.clearSelection();
         }
      }
   }
Tale listener va aggiunto al ListSelectionModel del ColumnModel della tabella:

codice:
ListSelectionModel model = tabella.getColumnModel().getSelectionModel();
model.addListSelectionListener( tuoListener );
Perchè il SelectionModel di default (quello raggiungibile dall'oggetto JTable) è il modello per le righe, non per le colonne.


Ciao.