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 ?