[RESOLVIDO]Duvidas em adicionar um Animal

Boatarde galera desde de já muito obrigado

galera estou enfretando o seguinte problemas tenho um classe animal e uma classe cliente e em meu projeto todo animal que vai ser adicionado precisa ter um cliente

ai na classe animal fiz isso

        @ManyToOne
	@JoinColumn(name="codigo_cliente")
        @SwingColumn(description="Cliente",colorOfBackgound="")
	private Cliente clientes;

e na classe cliente

       @OneToMany(mappedBy="codigo")
	private List<Animal>animais = new ArrayList<>();

creio que até aqui está certo, só que agora não consigo fazer um seta para o outro

fiz dessa forma para add…

Animal animal = new Animal();
            animal.setClientes((Cliente) cbcliente.getSelectedItem());  //aqui é combobox editavel junto com busca
            animal.setNome_animal(txtnome_animal.getText());
            animal.setRaca(txtraca.getText());
            animal.setCor(txtcor.getText());
            animal.setData_nascimento((Calendar) ((JCalendar) cbdatanascimento).getSelectedItem());
            animal.setData_vacina((Calendar) ((JCalendar) cbdatavacina).getSelectedItem());
            animal.setTipo(cbtipo.getSelectedItem().toString());
            animal.setObs(txtObs.getText());
            dao.AdcionarAnimal(animal);
            frmanimal.carregartela();
        } catch (Exception e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(this, "Erro ao adicionar novo animal, tente novamente!");
            return;
        }
        setVisible(false);

estou trazendo os cliente no combobox nesse seguinte metodo

private void carregarcombox() {
 try {
           cbcliente.removeAllItems();               
           ClienteDAO clienteDAO = new ClienteDAO();    
           List<Cliente> lista = clienteDAO.gettodosClientes();    
           DefaultComboBoxModel cbmcliente = new DefaultComboBoxModel();    
           for ( Cliente cliente : lista ) { 
          //cbmcliente.addElement(cliente.getCodigo_cliente());
           cbmcliente.addElement(cliente.getNome());
           cbcliente.setModel(cbmcliente);
           }
               } catch (Exception e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(this, "Erro ao carregar a lista de proprietários");
        }

bem galera é isso quem puder me ajudar… agradeço sou novo em java!

Alguém?

Isto aqui que não esta funcionando ?

animal.setClientes((Cliente) cbcliente.getSelectedItem());  //aqui é combobox editavel junto com busca 

da um e vê o que esta chegando

JOptionPane.showMessageDialog(null, (Cliente) cbcliente.getSelectedItem()); 

desculpa querido, mas não intendi… :frowning:

Onde esta dando erro?

da esse erro aqui…


java.lang.ClassCastException: java.lang.String cannot be cast to br.com.banhotosa.Model.Cliente
	at br.com.banhotosa.View.FrmaddAnimal.btokActionPerformed(FrmaddAnimal.java:260)
	at br.com.banhotosa.View.FrmaddAnimal.access$400(FrmaddAnimal.java:22)
	at br.com.banhotosa.View.FrmaddAnimal$5.actionPerformed(FrmaddAnimal.java:125)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
	at java.awt.Dialog.show(Dialog.java:1082)
	at java.awt.Component.show(Component.java:1651)
	at java.awt.Component.setVisible(Component.java:1603)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at br.com.banhotosa.View.FrmAnimal.btnovoActionPerformed(FrmAnimal.java:177)
	at br.com.banhotosa.View.FrmAnimal.access$100(FrmAnimal.java:20)
	at br.com.banhotosa.View.FrmAnimal$2.actionPerformed(FrmAnimal.java:67)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
	at java.awt.Dialog.show(Dialog.java:1082)
	at java.awt.Component.show(Component.java:1651)
	at java.awt.Component.setVisible(Component.java:1603)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at br.com.banhotosa.View.FrmPrincipal.jButton3ActionPerformed(FrmPrincipal.java:264)
	at br.com.banhotosa.View.FrmPrincipal.access$200(FrmPrincipal.java:16)
	at br.com.banhotosa.View.FrmPrincipal$3.actionPerformed(FrmPrincipal.java:81)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Você está preenchendo o comboBox do Cliente com cliente.getNome(), depois vai no dao, pega o selecionado e tenta converter para Cliente, por isso o erro.

Reescreva o método toString do cliente para que retorne o nome, depois no combobox você adiciona o objeto cliente.

  cbmcliente.addElement(cliente); 

ErickRAR desde de já obrigado, mas deixa eu ver se intendi…

tipo assim no dao eu passo o codigo, mas no combobox passo getNome seria isso???

Não.

Mantenha o dao como está. No combobox, quando você preenche ele, preencha dessa maneira:

cbmcliente.addElement(cliente);  

Depois, na sua classe Cliente, você deve reescrever o método toString:

@Override public String toString() { return nome; }

fiz dessa forma

cbmcliente.addElement(cliente);

agora está assim…

só que eu preciso deixar só o nome do combobox e do lado o codigo conforme o combobox muda o codigo tbm…
como poderia fazer isso?

[quote=rafaelshock]fiz dessa forma

cbmcliente.addElement(cliente);

agora está assim…

só que eu preciso deixar só o nome do combobox e do lado o codigo conforme o combobox muda o codigo tbm…
como poderia fazer isso?[/quote]

Agora você reescreve o método toString() da sua classe Cliente pra retornar o que você precisa que apareça na comboBox. Quando você passa um Objeto pra comboBox, por padrão ela coloca o retorno do método toString() como label de item na comboBox.

vooooti velho isso mesmo deu certinho, mas como faço para o textFileds do lado ficar sendo preenchido pelo codigo do cliente que está no combobox?

tipo quando selecionar o cliente aaaaa o codigo do lado fica 1, quando selecionar bbbb o codigo do lado fica 2 e assim por diante

[quote=rafaelshock]vooooti velho isso mesmo deu certinho, mas como faço para o textFileds do lado ficar sendo preenchido pelo codigo do cliente que está no combobox?

tipo quando selecionar o cliente aaaaa o codigo do lado fica 1, quando selecionar bbbb o codigo do lado fica 2 e assim por diante[/quote]

No getSelectedItem() do seu comboBox você pega o código do objeto selecionado e atribui no textField correspondente.

Faz um select de acordo com o item selecionado no combobox e da um setText no textfield.

seria isso aqui???

           txtCodigoCliente.setText(cliente.getCodigo().toString());

Só testando para dizer mas creio que seja isto sim…

então veio somente o ultimo numero, e posso mecher no combobox que ele não muda…
no caso fica somento o codigo 9

É porque tipo este ultimo numero corresponde ao ultimo registro que o ResultSet obteve e setou no setCodigo.
No caso acho que a solução seria você fazer um novo select de acordo com o item selecionado no combobox.

como ficaria?

ou talvez nem preciso disso, é que eu estou preciso apenas do código para gravar o animal, preciso do codigo do cliente!