Retornar Item do Jcombo ao selecionar Jtable

1 resposta
C

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.

1 Resposta

C

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)
Criado 22 de outubro de 2012
Ultima resposta 25 de out. de 2012
Respostas 1
Participantes 1