Como pegar dados d uma array list e povoar o combobox

pessoal meu professor me passo um seguinte trabalho, criar 2 lista para armazenar funcionarios ( no caso os dao’s), 2 classe para o departamento e outra para o funcionario e estou fazendo as telas.

só q não estou conseguindo fazer o ele busca na lista e povoar o combo box, e quando ele está povoado eu não consigo salvar o elemento para tal funcionario.

Espero q me ajudem

Grato Felipe Donizetti.

CODIGO do dao e do cadFuncionario

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * CadFuncionario.java
 *
 * Created on 15/03/2012, 13:52:52
 */
package gui;

import daoList.DepartamentoDAO;
import daoList.FuncionarioDAO;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
import modelo.Departamento;
import modelo.Funcionario;

/**
 *
 * @author Felipe
 */
public class CadFuncionario extends javax.swing.JDialog {

    private FuncionarioDAO daoFunc;
    private DepartamentoDAO daoDpto;
    /** Creates new form CadFuncionario */
    public CadFuncionario(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        daoFunc = new FuncionarioDAO();
        daoDpto = new DepartamentoDAO();
        povoarJList(daoFunc);
        povoarJcomboBox(daoDpto);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jlblIdFuncionario = new javax.swing.JLabel();
        jtxtIdFuncionario = new javax.swing.JTextField();
        jbtnPesquisar = new javax.swing.JButton();
        jlblNomeFuncionario = new javax.swing.JLabel();
        jtxtNomeFuncionario = new javax.swing.JTextField();
        jlblEmail = new javax.swing.JLabel();
        jtxtEmail = new javax.swing.JTextField();
        JlblLogin = new javax.swing.JLabel();
        jtxtLogin = new javax.swing.JTextField();
        jlblSenha = new javax.swing.JLabel();
        jtxtSenha = new javax.swing.JTextField();
        jlblDepartamento = new javax.swing.JLabel();
        jComboBoxDepartamento = new javax.swing.JComboBox();
        jScrollPane1 = new javax.swing.JScrollPane();
        jlstFuncionariosCadastrados = new javax.swing.JList();
        jlblListaFuncionarios = new javax.swing.JLabel();
        jbtnSalvar = new javax.swing.JToggleButton();
        jbtnExcluir = new javax.swing.JToggleButton();
        jbtnLimpar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Cadastro Funcionario");
        setResizable(false);

        jlblIdFuncionario.setText("Id");

        jbtnPesquisar.setText("Pesquisar");
        jbtnPesquisar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnPesquisarActionPerformed(evt);
            }
        });

        jlblNomeFuncionario.setText("Nome");

        jlblEmail.setText("E-mail");

        JlblLogin.setText("Login");

        jlblSenha.setText("Senha");

        jlblDepartamento.setText("Departamento");

        jlstFuncionariosCadastrados.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jlstFuncionariosCadastradosMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(jlstFuncionariosCadastrados);

        jlblListaFuncionarios.setText("Funcionarios Cadastrados");

        jbtnSalvar.setText("Salvar");
        jbtnSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnSalvarActionPerformed(evt);
            }
        });

        jbtnExcluir.setText("Excluir");
        jbtnExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnExcluirActionPerformed(evt);
            }
        });

        jbtnLimpar.setText("Limpar");
        jbtnLimpar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbtnLimparActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(19, 19, 19)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jbtnSalvar)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jbtnExcluir)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jbtnLimpar))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jlblDepartamento)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(jlblEmail)
                                .addComponent(jlblNomeFuncionario)
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(jtxtIdFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGap(18, 18, 18)
                                    .addComponent(jbtnPesquisar))
                                .addComponent(jlblIdFuncionario)
                                .addComponent(jtxtNomeFuncionario, javax.swing.GroupLayout.DEFAULT_SIZE, 234, Short.MAX_VALUE)
                                .addComponent(jtxtEmail))
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addComponent(jComboBoxDepartamento, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jtxtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(JlblLogin))
                                    .addGap(18, 18, 18)
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jtxtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(jlblSenha)))))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jlblListaFuncionarios))))
                .addContainerGap(22, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(24, 24, 24)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jlblIdFuncionario)
                    .addComponent(jlblListaFuncionarios))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jtxtIdFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jbtnPesquisar))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jlblNomeFuncionario)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jtxtNomeFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jlblEmail)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jtxtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(JlblLogin)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jtxtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jlblSenha)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jtxtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jlblDepartamento)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jComboBoxDepartamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 20, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jbtnSalvar)
                            .addComponent(jbtnExcluir)
                            .addComponent(jbtnLimpar))
                        .addGap(23, 23, 23))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 264, Short.MAX_VALUE)
                        .addGap(18, 18, 18))))
        );

        pack();
    }// </editor-fold>                        

    private void jbtnLimparActionPerformed(java.awt.event.ActionEvent evt) {                                           
        limpar();
    }                                          

    private void jbtnSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                           
       Funcionario func = new Funcionario();
        String msg = "";
        try {
            func.setId(Integer.parseInt(jtxtIdFuncionario.getText())); //converte o conteudo do campo ID para integer
            func.setNome(jtxtNomeFuncionario.getText().toUpperCase()); //converte o conteudo do campo Nome para String
            func.setEmail(jtxtEmail.getText().toUpperCase());
            func.setLogin(jtxtLogin.getText().toUpperCase());
            func.setSenha(jtxtSenha.getText().toUpperCase());
            //func.setDepartamento(); falta como q salva o departamento do funcionario
            msg = daoFunc.salvar(func);
            limpar();
            JOptionPane.showMessageDialog(rootPane, msg);

            jtxtIdFuncionario.setText("" + func.getNome());

        } catch (NumberFormatException ex) {
            msg = "Informe um número válido para o departamento";
            JOptionPane.showMessageDialog(rootPane, msg);
        }
        povoarJList(daoFunc);
        povoarJcomboBox(daoDpto);
        limpar();
    }                                          

    private void jbtnExcluirActionPerformed(java.awt.event.ActionEvent evt) {                                            
        Integer id = Integer.parseInt(jtxtIdFuncionario.getText());
        Funcionario func = daoFunc.pesquisarPorID(id);
        String msg = daoFunc.excluir(func);
        JOptionPane.showMessageDialog(rootPane, msg);
        limpar();
        
    }                                           

    private void jbtnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                              
        
        try {

            Integer id = Integer.parseInt(jtxtIdFuncionario.getText()); // converte a strig q está digitando no campo e convertendo para integer
            Funcionario func = daoFunc.pesquisarPorID(id);
            if (func != null) {
                preencherTela(func);
            }
        } catch (NumberFormatException ex) {
            String msg = "Informe um número válido para o departamento";
            JOptionPane.showMessageDialog(rootPane, msg);
            limpar();
        }
    }                                             

    private void jlstFuncionariosCadastradosMouseClicked(java.awt.event.MouseEvent evt) {                                                         
       if (evt.getClickCount() >= 2) {
            String pesquisa = jlstFuncionariosCadastrados.getSelectedValue().toString();
            String[] array = pesquisa.split("-"); // divide em varias array a string
            Funcionario func = daoFunc.pesquisarPorID(Integer.parseInt(array[0]));
            preencherTela(func);
        }
    }                                                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(CadFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(CadFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(CadFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(CadFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the dialog */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                CadFuncionario dialog = new CadFuncionario(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {

                    @Override
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JLabel JlblLogin;
    private javax.swing.JComboBox jComboBoxDepartamento;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JToggleButton jbtnExcluir;
    private javax.swing.JButton jbtnLimpar;
    private javax.swing.JButton jbtnPesquisar;
    private javax.swing.JToggleButton jbtnSalvar;
    private javax.swing.JLabel jlblDepartamento;
    private javax.swing.JLabel jlblEmail;
    private javax.swing.JLabel jlblIdFuncionario;
    private javax.swing.JLabel jlblListaFuncionarios;
    private javax.swing.JLabel jlblNomeFuncionario;
    private javax.swing.JLabel jlblSenha;
    private javax.swing.JList jlstFuncionariosCadastrados;
    private javax.swing.JTextField jtxtEmail;
    private javax.swing.JTextField jtxtIdFuncionario;
    private javax.swing.JTextField jtxtLogin;
    private javax.swing.JTextField jtxtNomeFuncionario;
    private javax.swing.JTextField jtxtSenha;
    // End of variables declaration                   

    private void limpar() {
        jtxtIdFuncionario.setText("");
        jtxtNomeFuncionario.setText("");
        jtxtEmail.setText("");
        jtxtLogin.setText("");
        jtxtSenha.setText("");
    }

    private void povoarJList(FuncionarioDAO daoFunc) {
        
        DefaultListModel modelo = new DefaultListModel();
        List<Funcionario> listaFunc = daoFunc.getBancoFuncionario();
        jlstFuncionariosCadastrados.setModel(modelo);
        for (Funcionario func : listaFunc) {
            modelo.addElement(func.getId() + "-" + func.getNome());
        }
    }

    private void povoarJcomboBox (DepartamentoDAO daoDpto)
    {
        DefaultComboBoxModel modelo = new DefaultComboBoxModel();
        List <Departamento> listaDpto = daoDpto.getBanco();
        jComboBoxDepartamento.setModel(modelo);
        for (Departamento dpto : listaDpto){
            modelo.addElement(dpto.getNome());
        }        
       
    }

    private void preencherTela(Funcionario func) {
        jtxtIdFuncionario.setText(func.getId() + "");
        jtxtNomeFuncionario.setText(func.getNome().toUpperCase());
        jtxtEmail.setText(func.getEmail().toUpperCase());
        jtxtLogin.setText(func.getLogin());
        jtxtSenha.setText(func.getSenha());
        //jComboBoxDepartamento. como que resgasta o valor da combo box q representa o funcionario.
    }
        
    
    }


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package daoList;

import java.util.ArrayList;
import java.util.List;
import modelo.Departamento;

/**
 *
 * @author lab
 */
public class DepartamentoDAO {

    private List<Departamento> banco;


public DepartamentoDAO(){
    banco = new ArrayList<Departamento>();
    povoarBanco();
}

private void povoarBanco(){
    Departamento dpto1 = new Departamento();
    dpto1.setId(1);
    dpto1.setNome("Informática");
    Departamento dpto2 = new Departamento();
    dpto2.setId(2);
    dpto2.setNome("Compar");
    Departamento dpto3 = new Departamento();
    dpto3.setId(3);
    dpto3.setNome("Contabilidade");
    banco.add(dpto1);
    banco.add(dpto2);
    banco.add(dpto3);

    
}

public Departamento pesquisarPorId(Integer id){
    
    Departamento encontrado = null;
    for (Departamento dpto : banco)
    {
        if (dpto.getId()==id){
            encontrado = dpto;
        }
    }
    return encontrado;

}

public String salvar(Departamento dpto){
    String msg ="";
    Departamento depAux = pesquisarPorId(dpto.getId());
    if (depAux == null){
        banco.add(dpto);
        msg ="Departamento inserido com sucesso!";
    }else
    {
        banco.remove(depAux);
        banco.add(dpto);
        msg="Departamento atualizado com sucesso!";
    }
    return msg;
}
public String excluir (Departamento dpto)
    {
    String msg ="Departamento não consta no banco!";
    if (banco.contains(dpto)){
        banco.remove(dpto);
        msg ="Departamento removido com sucesso!";
        }

    return msg;
}

public List<Departamento> getBanco()
    {
    return banco;
}




}

Você precisa de um loop que adicione os dados que vc quer no seu componente.

Tipo isso:

for(String item : lista){
     comboBox.addItem((String)item);
}

eu fiz isso, ele lista, mas na hr q eu atualizo os departamentos ele não atualiza.

eu sempre faço assim

String campos1[] = {"NOME"}; String processos = con.fazerConsultaBanco("SELECT NOME from cad_tipo_processo order by nome", campos1); StringTokenizer st = new StringTokenizer(processos, ";"); cbProcesso.removeAllItems(); while (st.hasMoreElements()) { cbProcesso.addItem(st.nextElement()); }

dae qundo tu tem dus combo dependentes, coloca no evento intemstange

Tive a mesma dúvida semana passada. Resolvi com a ajuda do pessoal aqui. Segue abaixo o link. se tiver dúvida me avise que te explico passo-a-passo.

se vc mudar a propriedade da lista vc tera que atualizar o combo.

remova todos os itens e adicione os dados novamente da lista em um método que faça esse procedimento…

comboBox.removeAllItems();
for(String item : lista){
     comboBox.addItem((String)item);
}