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.
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