[RESOLVIDO]Pegar Valor da Proxima linha ou Anterior da Jtable
6 respostas
R
Rodrigo_Bronks
Seguinte estou tentando recuperar um valor da primeira coluna do meu Jtable Usando As teclas pra cima e pra baixo.
Até ai Tudo bem o problema é na hora de recuperar o valor,Pois quando aperto pra cima ou pra baixo ele me retorna o valor da linha atual e não da próxima, Alguém sabe alguma maneira de resolver isso??
jtable.addKeyListener(newKeyAdapter(){@OverridepublicvoidkeyPressed(KeyEventke){if((ke.getKeyCode()==KeyEvent.VK_UP)||(ke.getKeyCode()==KeyEvent.VK_DOWN)){//Recupera o ID da linha da tabela em que foi cliclada Objectid=modelo.getValueAt(jtable.getSelectedRow(),0);System.out.println(id);}}});
Exemplo Se Esta Selecionada a Linha 1 e aperto a seta para baixo ele me retorna o valor da coluna em que esta selecionado(1) e não o da próxima linha 2
[img]http://img40.imageshack.us/img40/3976/telae.png[/img]
basta vc tratar se a linha for = 0 ou = ultima, e não incrementar/decrementar.
R
Rodrigo_Bronks
Deste Modo só funcionária se o Id estiver sempre em ordem sequencial 1,2,3,4… oque não é o caso, após o usuário realizar uma consulta ele pode retornar id como, 1,7,18,22… deste modo se eu estiver na linha 1 e aperta-se para baixo ele me retornaria 2 ao invés de 7.
Mais Muito Obrigado pela Resposta,talvez eu que não expressei o meu problema de forma correta.
N
Nicolas_Fernandes
Amigão, larga a mão de usar o DefaultTableModel. Olha a complicação que surgiu para você por algo bem simples, concorda?
Olha na minha assinatura o link de como criar seu próprio TableModel. Você vai trabalhar diretamente com objetos, sem a necessidade de ficar trabalhando com células individuais. Crie o seu TableModel individual que você vai resolver isso aí sem problemas. Nele, você vai criar um método chamado getAt(int row) ou coisa parecida, que te devolve o objeto da linha selecionada, e assim você vai resolver o problema!
R
Rodrigo_Bronks
Eu tenho meu proprio TableModel.
Porem quando aperto a seta para baixo ele me retorna a linha atual de quando foi chamado o evento
e em seguida seleciona a próxima linha sem retornar mais nada, talvez seja um erro de lógica da minha parte.
J
JoaoOliveiraMlp
Sempre que você aperta a tecla ele retorna o valor da linha anterior ao evento da tecla? Se sim, por que só não retorna o getSelectedRow()+1 quando é tecla pra baixo e getSelectedRow()-1 quando é pra cima? Ou getSelectedRow() quando está nas bordas da tabela(elemento 0 ou elemento “tamanhodatabela”).
Provavelmente o seu listener tá pegando o evento antes da JTable.
R
Rodrigo_Bronks
Resolvido, Fiz assim como o JuniorMaia e o JoaoOliveira Disseram
Obrigado
Ficou assim: