Capturar click em jTable usando o Netbeans

Uso o Netbeans e para capturar um click do mouse em uma jTable eu ativo o evento mouseClicked, isso sempre funcionou, contudo estou tentando implementar e nada de dar certo agora. O meu caso é que na 4 coluna da jTable tenho um campo boolean e quando o usuário clica na tabela e seleciona um campo um jOptionPane deve aparecer interogando o usuário sobre excluir ou não a linha, o meu código está da seguinte maneira:

for(int index = 0; index < modelo.getRowCount(); index++){
            if(((Boolean)modelo.getValueAt(index, 3)).booleanValue()){
                peso = (Double)modelo.getValueAt(index, 0);
                codigo = codigoList.get(index).intValue();
                maquinaControle = maquinaList.get(index).intValue();
                produtoControle = produtoList.get(index).intValue();
                controleList.add((Boolean)modelo.getValueAt(index, 3));
            }
        }
        
        if(controleList.size() == 1){
            int i = JOptionPane.showConfirmDialog(null,
                        "Deseja realmente apagar a leitura \n" +
                        "de peso selecionada?",
                        "Apagar leitura de peso", 
                        JOptionPane.OK_CANCEL_OPTION);
            if(i == JOptionPane.YES_OPTION){
                //Processo de delete no banco de dados.
                try{
                    conexao.abrirConexao();
                    conexao.setDelete("delete from amostragem_medicao where amo_codigo = " + codigo);
                    conexao.preparaDelete();
                    conexao.executeDelete();

                    conexao.setDelete("delete from amostragem where amo_codigo = " + codigo);
                    conexao.preparaDelete();
                    conexao.executeDelete();
                    conexao.fecharBanco();      
                }catch(FileNotFoundException fnfe){
                    erro = true;
                    JOptionPane.showMessageDialog(null,
                            "Configuração do Banco de Dados não encontrada." + fnfe,
                            "Erro!",
                            JOptionPane.ERROR_MESSAGE);
                }catch(IOException ioe){
                    erro = true;
                    JOptionPane.showMessageDialog(null,
                            "Erro na abertura de arquivo de configuração." + ioe,
                            "Erro!",
                            JOptionPane.ERROR_MESSAGE);
                }catch(ClassNotFoundException cnfe){
                    erro = true;
                    JOptionPane.showMessageDialog(null,
                            "Erro de classe não identificada." + cnfe,
                            "Erro!",
                            JOptionPane.ERROR_MESSAGE);
                }catch(SQLException sqle){
                    erro = true;
                    JOptionPane.showMessageDialog(null,
                            "Erro de SQL." + sqle,
                            "Erro!",
                            JOptionPane.ERROR_MESSAGE);
                }
                
                if(erro == false){
                    for(int index = 0; index < modelo.getRowCount(); index++){
                            if(((Boolean)modelo.getValueAt(index, 3)).booleanValue()){
                                modelo.removeRow(index);
                                codigoList.remove(index);
                                maquinaList.remove(index);
                                produtoList.remove(index);
                            }
                        }

                    contador--;
                    jTextFieldContador.setText(String.valueOf(contador));
                }
            }else if(i == JOptionPane.CANCEL_OPTION){
                //Cancelar processo de delete no banco de dados (retorna boolean para false). 
                for(int index = 0; index < modelo.getRowCount(); index++){
                    boolean valor = (Boolean)modelo.getValueAt(index, 3);
                    if(valor == true){
                        modelo.setValueAt(false, index, 3);
                    }
                }
            }
            controleList.clear();
            i = 0;

Alguém ve alguma coisa de errado? Tem algum outro evento melhor para capturar um click do teclado?