Pessoal… adicionei um KeyListener numa tabela que faz o seguinte… quando a tecla UP é pressionada retira a ultima linha da tabela…
Pois bem… o foco deveria ir pra linha de cima… o problema é que o KeyListener executa a remoção da linha primeiro, levando o foco pra posicao -1, -1 (lugar nenhum da tabela) depois é que a tabelaexecuta a ação interna de mudança de foco disparada pela tecla… isso faz com que o foco vá para a primeira linha da minha tabela…
Já tenrtei usar o metodo changeSelection() para forçar o foco… mas não adianta pelo mesmo motivo… o evento do keylistener eh disparado primeiro… então quando tento setar o foco ele nao vai para uma linha acima da que deveria ser setado o foco…
Alguém tem alguma ideia de como eu poderia fazer?
KeyListener + JTable
A
2 Respostas
andre2k2,
poste seu código, para ficar mais claro o que voce está
fazendo , assim talvez dê para saber porque está fazendo
a remoção da linha primeiro.
A
Ja resolvi o problema… para o trecho de código que retirava a linha eu invoquei o metodo invokeLater assim:
EventQueue.invokeLater(new Runnable() {
public void run() {
//Código
}
});
Esse metodo faz com que a Thread do AWT execute tudo que ela precisa e somente depois execute o codigo dentro do metodo run()! 
Assim a Thread do AWT primeiro atualiza a seleção para a nova celula e só depois remove a linha… esta perfeito!!!
Criado 11 de setembro de 2007
Ultima resposta 12 de set. de 2007
Respostas 2
Participantes 2