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…
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.
[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]
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.