Pesquisar no JComboBox Editável?

Este é meu primeiro post; estou estudando java e desenvolvendo uma aplicação onde populo um Jcombobox editable com dados vindos do MySQL, minha duvida é como eu faço pra setar os valores nos seus devidos campos no formulário, consigo fazer com um jcombobox não editável porem com o editável não funciona.

Código pra pegar os valores do combobox não editável:

private void cbxPesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                             
  
  MdlUsuarios pesquisa = (MdlUsuarios) cbxPesquisar.getSelectedItem();
      cbxPesquisar.removeAll();
      if(cbxPesquisar.getSelectedIndex()>-1){
      txtCodigo.setText(Integer.toString(pesquisa.getCodigo()));
      txtNome.setText(pesquisa.getNome());
      txtUsuario.setText(pesquisa.getUsuario());
      txtEmail.setText(pesquisa.getEmail());
      txtSenha.setText(pesquisa.getSenha());
      txtConfirmarSenha.setText(pesquisa.getConfirmar_senha());
      txtDicaSenha.setText(pesquisa.getDica_senha());
        
      }else{
       read();
       
      } 
   
    }

o código que traz os dados do banco é este:

public List<MdlUsuarios> read(){
       conex.conexao();
       List<MdlUsuarios> retornaPesquisa = new ArrayList<>();
        try {
            
            String nome=txtPesquisar.getText().trim();
            if ( nome.equals("") ){
            JOptionPane.showMessageDialog(null, "Digite um nome para pesquisar");
                
            }else{
            stm = conex.con.prepareStatement("select *from usuarios where NOME LIKE '%" +nome+ "%' ORDER BY NOME");
            rs = stm.executeQuery();
            if(rs.isBeforeFirst()){
            //O isBeforeFirst vai retornar false se o cursor não estiver antes do primeiro
            //registro ou se não tiver linhas no ResultSet, ou true caso contrário.
            while(rs.next()){
            //Enquanto existir resultado no banco a pesquisa continua incrementando os resultados no combobox
                MdlUsuarios func = new MdlUsuarios();
                func.setCodigo(rs.getInt(1));
                func.setNome(rs.getString(2));
                func.setUsuario(rs.getString(3));
                func.setEmail(rs.getString(4));
                func.setSenha(rs.getString(5));
                func.setConfirmar_senha(rs.getString(6));
                func.setDica_senha(rs.getString(7));
                retornaPesquisa.add(func);
                
            }
            }else{
                JOptionPane.showMessageDialog(null, "Nenhum registro para a pesquisa realizada");
            }
                   
            rs.close();
            stm.close();
            }
            
            }catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Nenhum registro retornou na lista"+"\n"+ex);
        }
        conex.desconecta();
        return retornaPesquisa;

}