First, disable row selection:
setRowSelectionAllowed(false);
Second, create a SelectionListener, which always move the selection to the first column of row:
ListSelectionListener listerner = new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
setColumnSelectionInterval(0, 0);
}
};
And finally add the listener to your table's Column Selection Model
getColumnModel().getSelectionModel().addListSelectionListener(listerner);