Retornar Item do Jcombo ao selecionar Jtable

Bom dia.

Tenho uma Jatble com os items que que eu já adicionei através do botão gravar, ao clicar em cima da linha ele retorna os valores para jtextfield e jcombobox. Porem quando eu vou alterar e mandar gravar ele da o erro que o jcombobox está mandando null.

segue os metodos.

CLICAR NA TABELA

    private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {                                     
        if (evt.getClickCount() == 1) {
            Object obj = (jTable1.getValueAt(jTable1.getSelectedRow(), 0));  //coluna 0
            String Id = obj.toString();
            Object obj1 = (jTable1.getValueAt(jTable1.getSelectedRow(), 1));  //coluna 1
            String nome = obj1.toString();
            Object obj2 = (jTable1.getValueAt(jTable1.getSelectedRow(), 2)); //coluna 2 
            String Desc = obj2.toString();
            Object obj3 = (jTable1.getValueAt(jTable1.getSelectedRow(), 3)); //coluna 2 
            String ali = obj3.toString();


            JbAlimentos.setEditable(true);
            JbAlimentos.setSelectedItem(obj3);//aqui pego o valor da linha selecionada na coluna 3 e adiciono ao jcombobox 
            JbAlimentos.setEditable(false);



            Codigo.setText(Id);//aqui pego o valor da linha selecionada na coluna 0 e adiciono ao jtextfield    
            Nome.setText(nome);//aqui pego o valor da linha selecionada na coluna 1 e adiciono ao jtextfield   
            Descricao.setText(Desc);//aqui pego o valor da linha selecionada na coluna 2 e adiciono ao jtextfield 

        }
    } 

METODO ALTERAR


 private void Alterar() {

        if (JbAlimentos.getSelectedIndex() > 0) {
            Alimentacao tipo = (Alimentacao) JbAlimentos.getSelectedItem();
            id = tipo.getIdalimentacao();
        } else {
            JOptionPane.showMessageDialog(null, "Favor Preencher Selecione a Alimentação");
            return;
        }

        if ((Nome.getText().isEmpty())) {
            JOptionPane.showMessageDialog(null, "Favor Preencher os Campos em Negrito");
            return;
        } else {
            lotes.setIdlotes(new Integer(Codigo.getText()));
            lotes.setLot_nome(Nome.getText());
            lotes.setLot_desc(Descricao.getText());
            lotes.setAlimentacao_idalimentacao(id);
            daoL.atualiza(lotes);

            JOptionPane.showMessageDialog(null, "Lote " + Nome.getText() + " Alterado com sucesso! ");
        }
// apaga os dados preenchidos nos campos de texto
        Codigo.setText("");
        Nome.setText("");
        Descricao.setText("");
        refresh();
    }

METODO QUE LISTA OS ITEM DO COMBO.


    private void ComboAlimentacao() {

        ListarControle controleitem = new ListarControle();
        controleitem.listarAlimentacao();
        List<Alimentacao> itens = controleitem.listarAlimentacao();

        DefaultComboBoxModel modeloAli = new DefaultComboBoxModel();
        modeloAli.addElement("Selecione a Alimentação");
        for (int i = 0; i < itens.size(); i++) {
            modeloAli.addElement(itens.get(i));


        }

        JbAlimentos.setModel(modeloAli);
        //  JbAlimentos.setSelectedIndex(-1);


    }

    public class ListarControle {

        public List listarAlimentacao() {
            ControleAlimentacaoDao dao = new ControleAlimentacaoDao();
            try {
                return dao.ConsultaAlimentacaoLote(alimentacao);
            } catch (Exception ex) {
                JOptionPane.showMessageDialog(null, ex);
            }
            return null;
        }
    }

Oque eu percebi, é que se eu clicar na tabela e clicar no combo e marca o mesmo item ele ALTERA, mas só clicando na tabela ele retorna o nome correto, porem fica como null.

ta dando esse erro se tirar o if

run:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to Alimentacao.Tela.Alimentacao
	at Lotes.Tela.CadastroLotes.Alterar(CadastroLotes.java:443)
	at Lotes.Tela.CadastroLotes.BAlterarActionPerformed(CadastroLotes.java:296)
	at Lotes.Tela.CadastroLotes.access$200(CadastroLotes.java:24)
	at Lotes.Tela.CadastroLotes$3.actionPerformed(CadastroLotes.java:94)
	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:6504)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6269)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4860)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	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:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	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:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
CONSTRUÍDO COM SUCESSO (tempo total: 6 segundos)