JTable desselecionar linha

Como faço para remover a seleção (desselecionar) uma linha na Jtable, quero fazer que com que ao clicar em um botão se existir uma linha selecionada ela seja desselecionada.

Tente selecionar a linha -1

Cara, boa idéia não tinha lembrado que quando não a linha selecionada o indice retornado é -1.

Mas como dar Selected na linha através de código ?

tem o método setRowSelectionInterval mas ele não aceita negativos.

2 curtidas

Grande Vini!

Come Swing com farinha :lol:

Valeu tio

Olá Amigos

To com um problemão, este código vamos dizer que trava a tabela e não consigo desselecionar a tabela e quando faço alteração nela me dá erro “ArrayIndexOutOfBoundsException: -1” já tentei usar o comando mensionado anteriormente mas nada ocorre.
Alguma dica de como resolver? Eu já tentei de tudo que conhecia.

Aguardo retorno.

tabela.getSelectionModel().addListSelectionListener(new ListSelectionListener() {  
    public void valueChanged(ListSelectionEvent e) {  
      String codigo = tabela.getValueAt(tabela.getSelectedRow(), 0).toString();
                        
                        try{               
                            Conexao c = new Conexao();
                            c.conectar(); 
            
            PreparedStatement ps = c.con.prepareStatement("Select * from telefone where codigo=?");     
      ps.setString(1,codigo);
      ResultSet rs = ps.executeQuery();//faz uma consulta e guarda o resultado no rs    
           
        if(rs.next()){//se achou
            //colocar na caixa de texto o valor correspondente que esta na tabela
          txtCodigo.setText(rs.getString("codigo"));
          txtCodigoCliente.setText(rs.getString("codigocliente"));
          txtFantasia.setText(rs.getString("fantasia"));
          txtEndereco.setText(rs.getString("endereco")); 
          txtCidade.setText(rs.getString("cidade"));
          txtTelefone.setText(rs.getString("telefone"));
          txtCodigoMaquina.setText(rs.getString("codigomaquina"));
          txtModelo.setText(rs.getString("modelo"));
          txtDescSint.setText(rs.getString("descsint"));
          txtDescComp.setText(rs.getString("descportugues"));
          txtContato.setText(rs.getString("contato"));
          txtData.setText(rs.getString("data"));
          txtHoraInicio.setText(rs.getString("hora_inicio"));
          txtHoraFim.setText(rs.getString("hora_fim"));
          taProblemaDescrito.setText(rs.getString("problema_descrito"));
          taSolucao.setText(rs.getString("solucao")); 
          lbTecnico.setText(rs.getString("tecnico"));
          lbProblema.setText(rs.getString("tipo_problema"));
      }else{
JOptionPane.showMessageDialog(null, "Ocorreu um erro desconhecido!");
        }
        c.con.close(); rs.close(); ps.close();         
        }catch(Exception ex){
    JOptionPane.showMessageDialog(null, "Erro "+ex.toString());
        }        
    }
});   

utilizei o metodo indicado pelo grande vini:
suaTable.getSelectionModel().clearSelection()

porem, quando eu nao tenho nenhuma linha selecionada ele passa tranquilo por esse codigo,
porem se tenho uma linha selecionada(q entraria em ação esse comando passado pelo vini)
da o erro
Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: -1

sabe me dize o pq? =/

**estou fazendo isso apos faze um select, nao sei se interfere!

preciso disso pois tenho um metodo que zera a tabela
modelo.setNumRows(0);

porem percebi que da erro nele caso tenha uma linha selecionada!!
preciso tirar a seleção dela antes de fazer o
modelo.setNumRows(0);

porem nao esta tirando, e sim dando outro erro ¬¬

eu tenho um problema parecido e ainda nao consegui resolver…

é assim…

tenho uma jtable, que eu criei, e estou com um problema na seleção de celula…

tenho a jtable e quando seleciono uma linha, tenho um botao fora da tabela (botao alterar), e quando clico nesse botao ele mete a linha selecionada editavel…
só que eu depois de alterar informaçoes nos campos da tabela, tenho 2 botoes (botao confirmar e botao cancelar), se eu clicar no ‘confirmar’ ele pega os valores alterados na jtable e guarda-os, mas se eu clicar no ‘cancelar’ mesmo depois de ter alterado valores em algumas celulas da tabela ele repõe os valores originais e nao guarda os valores alterados… só quando eu clico no botão ‘cancelar’ se eu tiver com o cursor numa celula em edição, ele repõe os valores originais pra todos os campos, menos pra esse que está o cursor…

Há alguma maneira de fazer com que isso nao aconteça?

obrigado… espero resposta