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?