Problemas com JList

7 respostas
F

Olá pessoal,

tenho um JList com uma lista de dentro dele e do lado desse JList tenho 2 botões um UP e um DOWN, quando seleciono algum elemento dentro do JList e clico em DOWN esse elemento é deslocado para baixo na lista. Até ai ta tudo beleza, porém para continuar movendo esse elemento para baixo eu preciso novamente seleciona-lo no JList e novamente clicar em DOWN.
Queria saber como faço para deslocar o foco junto com o elemento que selecionei, para poder selecionar uma vez o elemento e depois só clicar em DOWN e ele ir descendo na lista.

7 Respostas

claudneto

Pega o índice do item selecionado na JList, move pra baixo e seta o foco na JList novamente, mas no índice de baixo.

F

e como faço para setar o foco?

ViniGodoy
seuComponente.requestFocusInWindow();
claudneto

jlist.grabFocus(); jlist.setSelectedIndex(int);

F

blza esse ai ele me mostra onde o foco está no JList, mas queria seta-lo para poder move-lo.

exemplo:

| item1 |
| item2 | <---- foco aqui
| item3 |
| item 4 |

clico em down

| item1 |
| item3 | <---- foco continua aqui
| item2 |
| item 4 |

o foco continua no mesmo lugar, queria que ele descesse junto com o item 2.

F

agora sim! funcionou tudo aqui!

muito obrigado pela ajuda de vcs!

ViniGodoy

claudneto:
jlist.grabFocus(); jlist.setSelectedIndex(int);

Diz o Javadoc do método GrabFocus:
This method is intended for use by focus implementations. Client code should not use this method; instead, it should use requestFocusInWindow().
http://download.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html#grabFocus()

O mesmo vale para o requestFocus().

O único método que deve ser chamado para requisitar foco é o requestFocusInWindow().

Criado 29 de abril de 2011
Ultima resposta 29 de abr. de 2011
Respostas 7
Participantes 3