Q:

Popular JComboBox com Strings e IDs trazidos do banco de dados

Preciso popular uma JComboBox com os dados trazidos de uma tabela do meu Banco de Dados MySQL, porém não sei como deixar um item atrelado ao ID correspondente.
Exemplo: o ID 1 se refere ao perfil ADM e o ID 2 se refere ao perfil Padrão. Se o usuário selecionar o item ADM, o ID 1 deve ser inserido no BD.
Existe algum método ou propriedade que guarde o ID sem necessariamente mostrá-lo na JComboBox?
public void fillCB(){
    try{
        ResultSet rs;
        perfil.select();//esse método busca no BD os perfis existentes
        rs=perfil.getRs();//aqui eu pego o ResultSet existente na minha classe perfil
        while(rs.next()){
            cbPerfil.addItem(rs.getString("nome"));//e aqui populo a minha ComboBox com a descrição do perfil, porém preciso trazer o ID para relacionar com o item
        }
    }
    catch(SQLException erro){
        JOptionPane.showMessageDialog(null, "Erro!\n"+erro);
    }
}

Acima o código do método para preencher a ComboBox. 

A:

Creio que a opção mais recomendada neste caso é utilizar uma versão personalizada de um ComboBoxModel. Só que para isso, você também precisa criar uma representação POJO dessa tabela Perfil, algo mais ou menos assim:
public class Perfil {

    private int id;
    private String nome;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

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

    @Override
    public String toString() {
        return this.nome;
    }
}

O método toString() que sobrescrevi(como foi feito nesta resposta) é para que seja exibido o nome do perfil como representação do objeto no combo.
Como eu disse nos comentários, o ideal é separar responsabilidades e criar uma classe que interaja com o banco de dados a parte, e não delegar isto a classe que constrói a tela, mas como não foi apresentado mais nenhum detalhe da tela, vou me basear no método da pergunta. Você deve resgatar os dados da sua tabela e atribuir a classe acima, criando uma lista de todos os itens do banco:
List<Perfil> lista = new ArrayList<>();

ResultSet rs;
perfil.select();//esse método busca no BD os perfis existentes
rs=perfil.getRs();//aqui eu pego o ResultSet existente na minha classe perfil
while(rs.next()){
    Perfil p  = new Perfil();
    p.setId(rs.getInt("id"));
    p.setNome(rs.getString("nome"));
    lista.add(p);
}

Tendo uma lista de objetos Perfil definida, você pode utilizar esta classe que elaborei há algum tempo, que pode ser utilizada como um ComboBoxmodel genérico para qualquer tipo de objeto recebido:
public class GenericComboModel<E> extends AbstractListModel<E> implements ComboBoxModel<E>{

    private List<E> itemList;
    private E selection;

    public GenericComboModel(List<E> list) {
        this.itemList = list;
    }

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

    @Override
    public E getElementAt(int index) {
        return this.itemList.get(index);
    }

    @Override
    public Object getSelectedItem() {
        return this.selection;
    }

    @Override
    public void setSelectedItem(Object anItem) {
        this.selection = (E) anItem;
    }
}

Para usar, após popular a lista, é só configurar a classe acima como model do combo, passando a lista e parametrizando o objeto que a classe tratará na lista:
cbPerfil.setModel(new GenericComboModel<Perfil>(lista));

Para resgatar a opção selecionada em algum momento do código: 
Perfil pSelected = (Perfil)cbPerfil.getSelectedItem();

Isto resgatará um Perfil, e para pegar o id basta chamar pSelected.getId().

