Voltar booleano para false em jtable

2 respostas
P

Pessoal tenho uma jTable que quando o cara clica em um campo booleano ele inicia um processo, porém se esse processo for cancelado o campo booleano na jTable continua com true, tem como ao cancelar passar ele para false?
O meu método está:

private void GradeMouseClicked(java.awt.event.MouseEvent evt) {                                   
        DefaultTableModel modelo = (DefaultTableModel)Grade.getModel();
        List<String> valores1 = new ArrayList<String>();
        
        for(int index = 0; index < modelo.getRowCount(); index++){
            if(((Boolean)modelo.getValueAt(index, 1)).booleanValue()){
                valores1.add(modelo.getValueAt(index, 0).toString());
            }
        }
        
        if(valores1.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{
                    pesoDouble = Double.parseDouble(jTextFieldPeso.getText());
                    conexao.abrirConexao();
                    conexao.setDelete("delete from medicoes " +
                                       " where cod_maquina = " + jTextFieldMaquina +
                                              "and cod_aca = " + jTextFieldMaterial +
                                              "and peso = " + pesoDouble);
                    conexao.executeDelete();
                    conexao.fecharBanco();
                }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. 
                
            }
        }
    }

2 Respostas

davidbuzatto

Registra um evento de clique do mouse na tabela.
Quando o usuário clicar na mesma, obtém a linha e coluna que foram clicadas.
Se o processo der erro, vai na linha/coluna especificada e altera o valor.

P

Cara valeu pela dica, implementei e tá rolando legal.
Se alguém precisar vou deixar o código aqui:

for(int index = 0; index < modelo.getRowCount(); index++){
                    boolean valor = (Boolean)modelo.getValueAt(index, 1);
                    if(valor == true){
                        modelo.setValueAt(false, index, 1);
                    }
                }
Criado 6 de julho de 2007
Ultima resposta 10 de jul. de 2007
Respostas 2
Participantes 2