Inserir item e index em combobox

Olá pessoal, meu problema agora é que estou querendo alimentar meu combobox com dados do BD.
Segue o codigo abaixo.

public void carregaCombo() {
        jComboBox1.removeAllItems();
        try {
            bd = new Bd();
            bd.conecta();
            String sql = "SELECT a.idstress,a.descricao, b.cepa FROM stress a join linhagem b where a.idlinhagem = b.idlinhagem";
            pst = bd.conn.prepareStatement(sql);
            ResultSet rs = pst.executeQuery();
            while (rs.next()) {
                int x = rs.getInt("a.idstress");
                String y = rs.getString("a.descricao");
                String z = rs.getString("b.cepa");
                jComboBox1.add(y + " - " + z,x);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

eu queria que os items do combo fossem a junção da descrição + cepa, e o index fosse o idstress.
mas o codigo nao funciona, alguem sabe qual o erro ?
Obrigado

no meu uso o método addItem e dá certo

O problema do additem é q ele so permite adicionar o item, vc nao pode setar o valor do indice.
no meu caso quero setar o item e o indice.

porque o combobox por padrao seta item do tipo String

para funcionar da maneira que vc quer, entao tem que criar o seu proprio ComboBoxModel e ListCellRender

http://download.oracle.com/javase/tutorial/uiswing/components/combobox.html

já que você quer jogar tudo em uma combo box pode ser feito assim apesar que não é a melhor prática mais funciona

1º Crie uma classe que guardará os dados do vindo do seu banco por exemplo

[code]public class Teste{

    private int id;
    private int nome;
    //mais atributos aqui

   //crie também metodos para acesso get e set

   
   //sobreponha essa método para mostrar os dados na combo
   public String toString(){
          return id+" - "+nome;
   }

}[/code]

busque os dados normalmente agora ao invés de adicionar em uma String crie um novo objeto e os adicione ex

Teste teste = new Teste(); //adicione os dados vindo do banco através dos métodos sets teste.setId(5); teste.setNome("nome");

na hora de adicionar na combo box agora adicione o objeto inteiro ex

na hora de pegar o dado escolhido da combo ele irá te retornar um objeto do tipo Teste ai você pode buscar o atributo id dele

flw