Adicionar e remover elementos de uma JList que utiliza jlistbinding do SwingBinding

0 respostas
P

Bom dia , tenho a seguinte dúvida: Tenho uma jlist (jlistExames) que carrega seus elementos de uma tabela exames do banco de dados , essa lista utiliza o jlistbinding para carregar seus elementos, até ai ok.
O problema e a segunda jlist(jlistExamesenviados) que representa uma coleção de exames de uma entidade no banco de dados .
Quando a jlistExamesEnviados não está usando binding ,eu consigo adicionar e remover e elementos da mesma.
Mas eu tenho que salvar estes elementos no banco , e quando eu ativo o binding e tento adicionar elementos nada acontece !
Nada mesmo , nem mesmo uma exceção .
Os elementos são retirados da jlistexames mas não são adicionados na jlistexamesEnviados e não recebo qualquer mensagem de erro.
Onde estou errando ?
Lembrando que as entidades tem uma relação muitos para muitos no BD Segue os códigos relacionados a seguir

jListxamesEnviados

jListExamesEnviados = new javax.swing.JList(new DefaultListModel()); jListExamesEnviados.setCellRenderer(exameListCellRenderer2); jListExamesEnviados.setName("jListExamesEnviados"); org.jdesktop.swingbinding.JListBinding jListBinding = org.jdesktop.swingbinding.SwingBindings.createJListBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, encaminhamentosList, jListExamesEnviados); jListBinding.setDetailBinding(org.jdesktop.beansbinding.ELProperty.create("${examesCollection}")); bindingGroup.addBinding(jListBinding); jListExamesEnviados.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { jListExamesEnviadosValueChanged(evt); } });
JListExames

Setando modelo na jlistExames

public void setarJlistModelExames(JList list){ m1= new DefaultListModel(); ListIterator li =this.examesList3.listIterator(); while(li.hasNext()){ Exames e=((Exames)li.next()); System.out.println("nome do exame carregado = "+e.getDsExame()); m1.addElement(e); } list.setModel(m1); }

Setando modelo na jlistExamesEnviados

Lembrando que “currentEncaminhamentoRecord” é uma entidade de persistência que representa a entidade Encaminhamento que contem uma coleção de exames

public void setarJlistModelExamesEnviados(JList list){ m2= new DefaultListModel(); if(this.currentEncaminhamentoRecord != null && this.currentEncaminhamentoRecord.getExamesCollection() != null && !this.currentEncaminhamentoRecord.getExamesCollection().isEmpty()){ Iterator li = this.currentEncaminhamentoRecord.getExamesCollection().iterator(); while(li.hasNext()){ Exames e=((Exames)li.next()); System.out.println("nome do exame do encaminhamento = "+e.getDsExame()); m2.addElement(e); } } list.setModel(m2); System.out.println("Setou DefaultListmodel na JList exames enviados"); }

eventos para adicionar e remover elementos na duas listas
Adicionando exames na lista de enviados

public void AdicionarExame() { m2.addElement(this.jListExames.getSelectedValue()); m1.removeElement(this.jListExames.getSelectedValue()); }

Remover exames da lista de enviados

private void jButtonRemoverExamesActionPerformed(java.awt.event.ActionEvent evt) { m1.addElement(this.jListExamesEnviados.getSelectedValue()); m2.removeElement(this.jListExamesEnviados.getSelectedValue()); }

Por que só consigo adicionar elementos quando a lista de exames enviados não está usando o JListbinding ?

Criado 29 de setembro de 2009
Respostas 0
Participantes 1