jTable não seleciona linha no clique do mouse

0 respostas
P

Pessoal tenho um jTable com duas colunas desenvolvida no Netbeans 5.5.1, quando o usuário clica em uma linha eu capturo o clique para em minha função apagar a referida linha com

GradeMouseClicked

No micro de desenvolvimento está rodando legal, contudo em um micro onde o app irá rodar, as vezes a captura do clique funciona bem as vezes não funciona, eu clico como mouse e nada de funcionar.

Alguém tem alguma dica do que pode ocorrer?

P.S.: não dispara nenhum exceção.
P.S.2: Não sei se vai ajudar mas segue aí o meu código:

private void GradeMouseClicked(java.awt.event.MouseEvent evt) {                                   
         double peso = 0.00;
         int codigo = 0;
         int maquina = 0;
         int produto = 0;
         List<Boolean> controleList = new ArrayList<Boolean>();
         
         for(int index = 0; index < modelo.getRowCount(); index++){
             if(((Boolean)modelo.getValueAt(index, 1)).booleanValue()){
                 controleList.add((Boolean)modelo.getValueAt(index, 1));
             }
         }
 
         for(int index = 0; index < modelo.getRowCount(); index++){
             if(((Boolean)modelo.getValueAt(index, 1)).booleanValue()){
                 peso = (Double)modelo.getValueAt(index, 0);
                 codigo = codigoList.get(index).intValue();
                 maquina = maquinaList.get(index).intValue();
                 produto = produtoList.get(index).intValue();
             }
         }
         
         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 +
                                       " and ame_peso = " + peso);
                     conexao.preparaDelete();
                     conexao.executeDelete();
                     conexao.setDelete("delete from amostragem where amo_codigo = " + codigo +
                                       " and cod_aca = " + produto + 
                                       " and cod_maquina = " + maquina);
                     conexao.preparaDelete();
                     conexao.executeDelete();
                     conexao.fecharBanco();      
                     
                     for(int index = 0; index < modelo.getRowCount(); index++){
                         if(((Boolean)modelo.getValueAt(index, 1)).booleanValue()){
                             modelo.removeRow(index);
                         }
                     }
                     
                     contador--;
                 }catch(FileNotFoundException fnfe){
                     JOptionPane.showMessageDialog(null,
                             "Configuração do Banco de Dados não encontrada." + fnfe,
                             "Erro!",
                             JOptionPane.ERROR_MESSAGE);
                 }catch(IOException ioe){
                     JOptionPane.showMessageDialog(null,
                             "Erro na abertura de arquivo de configuração." + ioe,
                             "Erro!",
                             JOptionPane.ERROR_MESSAGE);
                 }catch(ClassNotFoundException cnfe){
                     JOptionPane.showMessageDialog(null,
                             "Erro de classe não identificada." + cnfe,
                             "Erro!",
                             JOptionPane.ERROR_MESSAGE);
                 }catch(SQLException sqle){
                     JOptionPane.showMessageDialog(null,
                             "Erro de SQL." + sqle,
                             "Erro!",
                             JOptionPane.ERROR_MESSAGE);
                 }
             }else{
                 //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, 1);
                     if(valor == true){
                         modelo.setValueAt(false, index, 1);
                     }
                 }
             }
         }
     }
Criado 13 de julho de 2007
Respostas 0
Participantes 1