JList e DefaultListModel

Digamos que eu tenha um objeto pessoa e quero exibir o nome desses objetos em um JList. Só que se um usuário selecionar eu quero o id e não o nome do meu objeto pessoa. Dá pra fazer isso com o DefaultListModel? Id é um atributo do meu objeto pessoa…

vlw

Sim!

1º - No seu objeto pessoa, sobrescreve o método toString() de Object, senod assim quando vc adicionar um objeto Pessoa na lista o que vc criou no toString() que vai aparecer.

2º - Quando o usuário clicar no item da lista, é só vc capturar o item que foi clicado (um Object) e dar um cast para o tipo Pessoa que é o tipo “real” do objeto fa lista. Tendo o objeto pessoa “em mãos” vc pode usar seu método get para pegar o id.

Falow!

muuuuuuuuuuuuuuuuuito bem pensado

Bem, se não me engano, bastaria vc sobrescrever o método toString desse seu pessoa e passar um array ou vetor deles para o construtor do JList.

Aí, é só pegar o objeto selecionado e dar um getId() nele, ou getQualquerCoisaDaPessoa()

flw

[edit] argh… fui lerdo de novo

Alguém me explique isso direito?

[code]//Adiciono os elementos da lista dessa maneira:
lmListaArtistas.addElement(new Bean(Integer.parseInt(itens[x][0]), itens[x][1]));

//Como faço agora para pegar esses elementos aqui dentro? Pode ser mostrado num JOptionPane
MouseListener mouseListener = new MouseAdapter() {
public void mouseClicked(MouseEvent event) {
int index = jlListaArtistas.locationToIndex(event.getPoint());
JOptionPane.showMessageDialog(null, dados.getId());
}
};[/code]

Ajudem ai

Não sei se entendi, o que você quer fazer, pegar os que estão selecionados na lista?

Para isso, pode usar o método getSelectedValues(), que te retorna os objetos selecionados num Object[], aí é só dar o cast pra classe que você usa e chamar os seus gets pra recuperar as informações.

Tudo bem, eu não soube esplicar direito, mas eu dei um jeito nisso, um “gato”. Vou postar aqui para ver o melhor jeito de se fazer.