Ajuda com JList

No meu programa tenho a opção de pesquisar as pessoas por cpf, nome ou código.
Tenho uma caixa de texto e três RadioButtons, então escolho o que eu quero nos RadioButtons e pesquiso qualquer um dos três na mesma caixa de texto.
O problema é que o código da pesquisa só funciona pelo nome, mesmo quando marco pra ele pesquisar por código, o que ele continua procurando é por nome.

Vejam as partes principais do código:

Esses são os métodos que carregaam a lista, quando um dos botões de opção são selecionados:

 public void carregarCPF(){
        listPessoas.removeAll();
        listPessoas.setModel(new DefaultListModel());
        ArrayList<Pessoas> a = Pessoas.getTodasPessoas();
        Collections.sort(a, new Pessoas.comparadorCPF());
        
        Iterator<Pessoas> itr = a.iterator();
        listPessoas.setCellRenderer(new DefaultListCellRenderer() {
            @Override
            public Component getListCellRendererComponent(JList list, Object value,
                    int index, boolean isSelected, boolean cellHasFocus) {
                try {
                    super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
                    Pessoas p = (Pessoas) value;
                    setText(p.getCNPJ()==null ? "Sem CNPJ" : p.getCNPJ().toString());
                    return this;
                } catch (CacheException ex) {
                    ex.printStackTrace();
                }
                return null;
            }
        });
        
        while (itr.hasNext()) {
            ((DefaultListModel) listPessoas.getModel()).addElement(itr.next());
        }            
    }
    public void carregarNome() {
        //Adicionando Pessoas a lista
        listPessoas.removeAll();
        listPessoas.setModel(new DefaultListModel());
        ArrayList<Pessoas> a = Pessoas.getTodasPessoas();  
        
        Iterator<Pessoas> itr = a.iterator();//Criando Iterator para percorrer a List
        Collections.sort(a);

        listPessoas.setCellRenderer(new DefaultListCellRenderer());//Definindo o gerenciador de células como o padrão do JList
        while (itr.hasNext()) {
            ((DefaultListModel) listPessoas.getModel()).addElement(itr.next());
        }
    }

    public void carregarCodigo() {
        //Adicionando Pessoas a lista
        listPessoas.removeAll();
        listPessoas.setModel(new DefaultListModel());
        ArrayList<Pessoas> a = Pessoas.getTodasPessoas();
        a.trimToSize();
        Iterator<Pessoas> itr = a.iterator();
        listPessoas.setCellRenderer(new DefaultListCellRenderer() {
            @Override
            public Component getListCellRendererComponent(JList list, Object value,
                    int index, boolean isSelected, boolean cellHasFocus) {
                try {
                    super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
                    Pessoas p = (Pessoas) value;
                    setText(p.getCodigo().toString());
                    return this;
                } catch (CacheException ex) {
                    ex.printStackTrace();
                }
                return null;
            }
        });        
        while (itr.hasNext()) {
            ((DefaultListModel) listPessoas.getModel()).addElement(itr.next());
        }
    }

E esse é o código de pesquisa:

    public void configuraListPesquisa(){
        
        txtPesquisar.getDocument().addDocumentListener(
      new DocumentListener(){
        public void insertUpdate(DocumentEvent e){
          pesquisarLista(txtPesquisar.getText()); 
        }
   
        public void removeUpdate(DocumentEvent e){
          pesquisarLista(txtPesquisar.getText());  
        }

        public void changedUpdate(DocumentEvent e){}
      }
    );       
    }
    
    private void pesquisarLista(String texto){
            int pos = listPessoas.getNextMatch(texto, 0, Position.Bias.Backward);
            listPessoas.setSelectedIndex(pos);
            listPessoas.ensureIndexIsVisible(pos);

    }

Alguma idéia? Imagino que tenha a ver com o cellRenderer, pois o toString da minha classe pessoa é o nome, e na pesquisa o que ele usa é o model, mas não tenho nenhuma idéia de como resolver isso. Alguém pode me ajudar?