JList - setListData() dispara valueChanged()?

1 resposta
A

Oi pessoal,

gostaria de saber se, ao chamar o método setListData() para um objeto JList, se os listeners (ListSelectionListener) registrados para este mesmo objeto são notificados.

Eu escrevi um programa que usa JList, e em alguns momentos eu preciso setar toda a lista de uma vez (uso o setListData() para isto - não estou usando ListModel). O problema que estou tendo é que, às vezes ele notifica os listeners e às vezes não, e esta inconsistência está causando problemas. Será isto um bug da api? Eu to usando o jdk 1.5.

Uma coisa que eu observei é que, se há um item selecionado no momento em que chama setListData(), então ele notifica o listener; caso contrário ele não notifica.

Se alguém souber explicar o porquê deste comportamento por favor me responda.

Valeu!
A.

1 Resposta

Petronio_Braga

alfafa,

dá uma olhada neste tópico.

http://www.guj.com.br/posts/list/49905.java

No final, anexei dois arquivos. Utilizei tanto a classe DefaultListModel quanto a Vector. Tem uma interface visual para você entender.

Quando usei a classe Vector eu usei o método setListData(). Dá uma olhada no código. Qualquer dúvida, é só falar.

Espero ter ajudado.

Criado 7 de dezembro de 2006
Ultima resposta 14 de jan. de 2007
Respostas 1
Participantes 2