Evento no Jlist

1 resposta
A

Nao estou conseguindo desenvolver o seguinte:

Tenho uma Jlist que exibe uma informacao de determinado item do BD quando seleciono item determinado numa JCombo e quero que ao selecionar este algo na mesma, o programa me retorne numa Jlabel um outro atributo referente a este item selecionado.

Ex bem simples: Tenho uma Jcombo com codigos de clientes, quando seleciono um exibido na Jlist o nome deste. Quero que ao clicar no seu nome na Jlist, carregue uma Jlabel com seu telefone, por exemplo…

Ou seja, minha duvida e no evento a ser usado na Jlist para perceber a selecao, pois a query de busca eu consigo desenvolver.

Usei FocusListener mas apresentou erro na compilacao!

Quem puder me ajudar!
Desde ja agradeco!

1 Resposta

G

Olá,

Para que vc possa detectar em evento de seleção em um JList ou JTable, deve-se adicionar um listener de seleção, ou seja, um objeto que vai “escutar” quando a seleção for alterada.
Nesse caso, implemente a interface ListSelectionListener, como no exemplo abaixo:

/*Primeiramente implemente a interface ListSelecitonListener
       que conterá o evento que será disparado quando houver uma    mudança na seleção da lista*/
    class MyListSelectionListener implements ListSelectionListener {
        
        public void valueChanged(ListSelectionEvent evt) {
             //Para que esse metodo possa ser usado por outras JList's
             //o ListSelectionEvent nos fornece qual list originou o evento
             JList list = (JList)evt.getSource();

            //Aqui vai o código, que no seu caso, mostrará o nome em um JLabel.

            //pega o objeto selecionado na lista
            Pessoa pessoa = (Pessoa) list.getSelectedValue();

            //Exibe o dado no label
            label.setText( pessoa.getNome() );
        }
    }

   //agora, basta adicionar o listener criado acima, na sua JList

   JList dataList = new JList();
   dataList.addListSelectionListener(new MyListSelectionListener());

Abraços,

Gyowanny Queiroz

Criado 9 de setembro de 2006
Ultima resposta 9 de set. de 2006
Respostas 1
Participantes 2