JComboBox com SwingX quase tudo funcionando?

Salve galera…

Seguinte, eu tenho um JComboBox onde faço um auto-complete baseado num Collections List retornado do meu banco de dados…Ja consigo fazer isso e estou usando a biblioteca SwingX q ajuda bastante.
Agora quero saber como ao invés de pegar o nome do cliente pegar o código, pq no JComboBox eu exibo o nome e não o código.
Andei vendo e muitas pessoas dizem pra usar HashMap, mas naum encontrei nada de como fazer. Minha tabela de Clientes vc vaum ver q ta definida como Ter01, vai saber pq definiram esse nome, ja vou adiantando q naum fui eu…kk !

aqui como estou fazendo.

// model
public class AbstractComboBoxModel extends AbstractListModel implements ComboBoxModel{
    private Object selectedItem;
    private List<Ter01> list;      
    private HashMap map = new HashMap();
    
    public AbstractComboBoxModel(){
        list = new ArrayList<Ter01>();        
    }
    
    public AbstractComboBoxModel(List<Ter01> lista){
        this();
        list.addAll(lista);        
    }

    @Override
    public int getSize() {
        return list.size();
    }

    @Override
    public Object getElementAt(int index) {        
        Ter01 t = list.get(index); 
        //map.put(t.getCodigo(), t.getNome());
        //return map.values();
        return t.getNome();        
    }

    @Override
    public void setSelectedItem(Object anItem) {
        selectedItem = anItem;
    }

    @Override
    public Object getSelectedItem() {
        return selectedItem;
    }
}



//aqui como estou usando no meu JFrame com a lib SwingX

construtor(){
    AutoCompleteDecorator.decorate(jComboBox1); //decorate de swingx
    meuCombo();
}

public void meuCombo(){
        jComboBox1.setMaximumRowCount(10);
        List<Ter01> lista = new Ter01DAO().retornaListaTer01(); //retorna a lista com os dados
        AbstractComboBoxModel model = new AbstractComboBoxModel(lista);//adiciono a lista ao meu model
        jComboBox1.setModel(model);//mudo o model do jcombo para o meu implementado
    }

Como faco pra pegar o codigo do cliente e naum o nome…

Blz galera…Ja que ninguém respondeu, consegui fazer o que preciso. 100% funcional, vou deixar aqui como fiz. Vai q alguem precisa.
Primeira coisa é baixar o SwingX, baixei aqui: http://www.java2s.com/Code/Jar/s/swingx.htm

agora a implementacao

// meu Bean
public class Funcoes {
    private Long idFuncao;
    private String funcao;

    public String getFuncao() {
        return funcao;
    }

    public void setFuncao(String funcao) {
        this.funcao = funcao;
    }

    public Long getIdFuncao() {
        return idFuncao;
    }

    public void setIdFuncao(Long idFuncao) {
        this.idFuncao = idFuncao;
    }
    
    public String toString(){
        return funcao;
    }    
}


//meu DAO
 public List<Funcoes> retornaFuncao(){
         List<Funcoes> lista = new ArrayList<Funcoes>();
         PreparedStatement stm = null;
         ResultSet rs = null;
         try{
             stm = this.con.prepareStatement("SELECT * FROM funcoes");            
             rs = stm.executeQuery();
             while(rs.next()){
                 Funcoes f = new Funcoes();
                 f.setIdFuncao(rs.getLong("id_funcao"));
                 f.setFuncao(rs.getString("funcao"));
                 lista.add(f);
             }             
         }catch (SQLException e){
             JOptionPane.showMessageDialog(null, "Erro tentando consultar função", "Erro", JOptionPane.ERROR_MESSAGE);
         }finally{
            try {
                rs.close();
                stm.close(); 
            } catch (SQLException ex) {
                Logger.getLogger(FuncoesDAO.class.getName()).log(Level.SEVERE, null, ex);
            }                         
         }
         return lista;
     }


//meu ComboBoxModel
public class FuncoesComboModel extends AbstractListModel implements ComboBoxModel{
    private List<Funcoes> listaFuncoes;
    private Object selectedItem;
    
    public FuncoesComboModel(){
        listaFuncoes = new ArrayList<Funcoes>();
    }
    
    public FuncoesComboModel(List<Funcoes> lista){
        this();
        listaFuncoes.addAll(lista);
    }

    @Override
    public int getSize() {
        return listaFuncoes.size();
    }

    @Override
    public Object getElementAt(int index) {
        return listaFuncoes.get(index);
    }

    @Override
    public void setSelectedItem(Object anItem) {
        selectedItem = anItem;
    }

    @Override
    public Object getSelectedItem() { 
       return selectedItem; 
    }    
}


//aqui como tudo funciona no JFrame
public class CadastroDeFuncoes extends JFrame{
      private JComboBox comboPesquisa;
      
      public CadastroDeFuncoes(){
            comboPesquisa = new JComboBox();
            meuCombo();            
      }

      public void meuCombo(){
        AutoCompleteDecorator.decorate(comboPesquisa); //aqui o SwingX para autocomplete
        comboPesquisa.setMaximumRowCount(10);
        List<Funcoes> lista = new FuncoesDAO().retornaFuncao();  
        FuncoesComboModel fcm = new FuncoesComboModel(lista);
        comboPesquisa.setModel(fcm);
        
        comboPesquisa.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //throw new UnsupportedOperationException("Not supported yet.");
                if(comboPesquisa.getSelectedIndex() != -1){
                    Funcoes f = (Funcoes)comboPesquisa.getSelectedItem();
                    Long id = f.getIdFuncao();
                    System.out.println(id); //aqui exibo o id
                }    
            }
        });        
    }

}

Pronto galera…100% funcional ;-).

vlw aew.