PreparedStatement fazendo consulta apartir de Combbox Nome

Estou tentado fazer uma consulta usando Combobox de Nome para resgastar os campos do Banco de Dados mas não estou conseguindo.Qualquer ajuda eu agradeço.

Classe Funcionario

public class Funcionario implements Serializable {

    
    
    private Integer ID_Funcionario;
    private String datadeAdmissao;
    private String datadeDemissao;
    private String nome;
    private String estadoCivil;
    private String sexo;
    private String cep;
    private String cpf;
    private String rg;
    private String datadeNascimento;
    private String estado;
    private String cidade;
    private String bairro;
    private String endereco;
    private String tel;
    private String cel;
    private String email;
    private String cargo;
    private String niveldeEscolaridade;

   
    
     public Funcionario() {
     
    }
    

    public Funcionario(Integer ID_Funcionario) {
     this.ID_Funcionario=ID_Funcionario;
    }

    

    public Integer getID_Funcionario() {
        return ID_Funcionario;
    }
    
    
    public void setID_Funcionario(Integer ID_Funcionario) {
        this.ID_Funcionario = ID_Funcionario;
    }

    public String getDatadeAdmissao() {
        return datadeAdmissao;
    }

    public void setDatadeAdmissao(String datadeAdmissao) {
        this.datadeAdmissao = datadeAdmissao;
    }

    public String getDatadeDemissao() {
        return datadeDemissao;
    }

    public void setDatadeDemissao(String datadeDemissao) {
        this.datadeDemissao = datadeDemissao;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEstadoCivil() {
        return estadoCivil;
    }

    public void setEstadoCivil(String estadoCivil) {
        this.estadoCivil = estadoCivil;
    }

    public String getSexo() {
        return sexo;
    }

    public void setSexo(String sexo) {
        this.sexo = sexo;
    }

    public String getCep() {
        return cep;
    }

    public void setCep(String cep) {
        this.cep = cep;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public String getRg() {
        return rg;
    }

    public void setRg(String rg) {
        this.rg = rg;
    }

    public String getDatadeNascimento() {
        return datadeNascimento;
    }

    public void setDatadeNascimento(String datadeNascimento) {
        this.datadeNascimento = datadeNascimento;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String getCel() {
        return cel;
    }

    public void setCel(String cel) {
        this.cel = cel;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getCargo() {
        return cargo;
    }

    public void setCargo(String cargo) {
        this.cargo = cargo;
    }

    public String getNiveldeEscolaridade() {
        return niveldeEscolaridade;
    }

    public void setNiveldeEscolaridade(String niveldeEscolaridade) {
        this.niveldeEscolaridade = niveldeEscolaridade;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (ID_Funcionario != null ? ID_Funcionario.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Funcionario)) {
            return false;
        }
        Funcionario other = (Funcionario) object;
        if ((this.ID_Funcionario == null && other.ID_Funcionario != null) || (this.ID_Funcionario != null && !this.ID_Funcionario.equals(other.ID_Funcionario))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Classes.Funcionario[ iDFuncionario=" + ID_Funcionario + " ]";
    }
    
}

FuncionarioDAO

 public List<Funcionario> ConsultarCombNome(){
        
     Connection connection = Conexao_Banco.getConnection();
     PreparedStatement statement =null;
     ResultSet rs=null;   
        
     List<Funcionario> funcionarios=new ArrayList<>();
     
     try{
     statement=connection.prepareStatement("SELECT * FROM funcionario");
     rs=statement.executeQuery();
     
     
     while(rs.next()){
         Funcionario f=new Funcionario();
            f.setID_Funcionario(rs.getInt("ID_Funcionario"));
            f.setDatadeAdmissao(rs.getString("datadeAdmissao"));
            f.setNome(rs.getNString("Nome"));
            f.setDatadeNascimento(rs.getString("datadeNascimento"));
            f.setSexo(rs.getString("Sexo"));
            f.setEstadoCivil(rs.getString("estadoCivil"));
            f.setCep(rs.getString("CEP"));
            f.setCpf(rs.getString("CPF"));
            f.setRg(rs.getString("RG"));
            f.setEstado(rs.getString("Estado"));
            f.setCidade(rs.getString("Cidade"));
            f.setBairro(rs.getString("Bairro"));
            f.setEndereco(rs.getString("Endereco"));
            f.setTel(rs.getString("Tel"));
            f.setCel(rs.getString("Cel"));
            f.setEmail(rs.getString("Email"));
            f.setNiveldeEscolaridade(rs.getString("niveldeEscolaridade"));
            f.setCargo(rs.getString("Cargo"));
            funcionarios.add(f);
     }
     
     }catch(SQLException ex){
          JOptionPane.showMessageDialog(null,ex.getMessage(),"Erro",0); 
    }finally{
         try {
             statement.close();
         } catch (SQLException ex) {
             JOptionPane.showMessageDialog(null,ex.getMessage(),"Erro",0); 
         }
    }
    
    return funcionarios;
    
    
    }

Tela de Alterar Funcionario

 private void Btn_ConsultarActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
     
     
          
      FuncionarioDAO dao=new FuncionarioDAO();
          
    for(Funcionario func: dao.ConsultarCombNome()){
        
        
        Txt_IDFuncionario.setText(String.valueOf ( func.getID_Funcionario()) );
        Txt_DataAdm.setText( func.getDatadeAdmissao() );
        Txt_DataNasc.setText( String.valueOf ( func.getDatadeNascimento()) );
        Comb_EstadoCivil.setSelectedItem(String.valueOf (func.getEstadoCivil()));
        Txt_CPF.setText(func.getCpf());
        Comb_Estado.setSelectedItem(String.valueOf (func.getEstado()));
        Txt_RG.setText(func.getRg());
        Txt_CEP.setText(func.getCep());
        Txt_Cidade.setText(func.getCidade());
        Txt_Bairro.setText(func.getBairro());
        Txt_Endereco.setText(func.getEndereco());
        Txt_Tel.setText(func.getTel());
        Txt_Cel.setText(func.getCel());
        Txt_Email.setText(func.getEmail());
        Txt_Cargo.setText(func.getCargo());
        Comb_NivelEscolaridade.setSelectedItem(String.valueOf(func.getNiveldeEscolaridade()));
       
    }
        
        Txt_IDFuncionario.setText("");
        Comb_Nome.setSelectedItem(0);
        Txt_DataAdm.setEditable(true);
        Txt_DataNasc.setEditable(true);
        Comb_EstadoCivil.setEnabled(true);
        Txt_CPF.setEditable(true);
        Comb_Estado.setEnabled(true);
        Txt_RG.setEditable(true);
        Txt_CEP.setEditable(true);
        Txt_Cidade.setEditable(true);
        Txt_Bairro.setEditable(true); 
        Txt_Endereco.setEditable(true);   
        Txt_Tel.setEditable(true);  
        Txt_Cel.setEditable(true);  
        Txt_Email.setEditable(true);  
        Txt_Cargo.setEditable(true);        
        Comb_NivelEscolaridade.setEnabled(true);
        Btn_Alterar.setEnabled(true);
    }

Mas o que está dando errado?

o Combobox não está atualizando os campos de acordo com o nome selecionado nele

Qual é o listener que trata o item selecionado no JComboBox?
Qual é o método do DAO que faz a pesquisa a partir do nome selecionado?

 public List<Funcionario> combNome(){
        
     Connection connection = Conexao_Banco.getConnection();
     PreparedStatement statement =null;
     ResultSet rs=null;   
        
     List<Funcionario> funcionarios=new ArrayList<>();
     
     try{
     statement=connection.prepareStatement("SELECT nome FROM funcionario");
     rs=statement.executeQuery();
     
     
     while(rs.next()){
         Funcionario f=new Funcionario();
            f.setNome(rs.getString("Nome"));
            funcionarios.add(f);
            
           }
     }catch(SQLException ex){
          JOptionPane.showMessageDialog(null,ex.getMessage(),"Erro",0); 
     }
         return funcionarios;
      }  


 public Tela_AlterarFuncionario() {
        
        
        initComponents();
        
        Btn_Alterar.setEnabled(false);
       
    DefaultTableModel model = (DefaultTableModel) TBL_AlterarFuncionarios.getModel();
          
    FuncionarioDAO dao=new FuncionarioDAO();
          
    for(Funcionario func: dao.subtela()){
       
         model.addRow(new Object[]{
       func.getID_Funcionario(),    
       func.getNome(),
       func.getDatadeAdmissao(), 
       func.getCargo(),
         });
        }

          
        for(Funcionario func: dao.combNome()){
            Comb_Nome.addItem(func.getNome()  );
        }
           
        
    }

Consegui pensar numa solução não ?