Amigo, na verdade a resposta para o que você está tentando fazer já está aqui mesmo no GUJ, pois recentemente quiz fazer algo do gênero..
Mas como não lembro qual o tópito, vou postar aqui pra te dar uma mão =p
private JComboBox getCampoEstoque() {
if (campoEstoque == null) {
campoEstoque = new JComboBox();
campoEstoque.setBounds(new Rectangle(90, 140, 200, 25));
campoEstoque.setBackground(SystemColor.control);
campoEstoque.setFont(new Font("Arial", Font.PLAIN, 10));
/*aqui o seu método listarEstoque() deve retornar
uma lista de objetos do tipo estoque*/
List<Estoque> list = controle.listarEstoque();
DefaultComboBoxModel model = new DefaultComboBoxModel();
for (Estoque estoque : list) {
model.addElement(estoque);
}
campoEstoque.setModel(model);
}
return campoEstoque;
}
Seu erro estava em tentar adcionar diretamente no comboBox.. Podendo trabalhar com o model.. Você deve utilizar o model sempre pra trabalhar com os dados do componente.. Como JList ou JComboBox.
Agora uma dica interessante que antes eu não tinha encontrado no fórum, mas um amigo tinha me dito como fazer, é trabalhar com o toString() no objeto, pra retornar extamente o que queremos no ComboBox (nesse caso), utilizando @OverWrite como o nosso colega gobbo falou. Nesse caso você deve por isso no seu objeto Estoque, e dando como retorno um atributo String desse onjeto para ser mostrado no combo.