Erro ao tentar preencher combobox

Bom dia galera, estou com um probleminha para preencher um combobox com dados do banco. Seu o código:

[code]public JComboBox<Refeicao> consulta(String data) {  
            JComboBox<Refeicao> JCBRefeicao = new JComboBox<Refeicao>();  
            try {  
                Refeicao refeicao = new Refeicao();  
                PreparedStatement stmt = (PreparedStatement) this.connection.prepareStatement("select * from refeicao where data = ?");  
                stmt.setString(1, data);  
                  
                ResultSet rs = stmt.executeQuery();  
                  
                while (rs.next()) {  
                    refeicao.setIdRefeicao(rs.getString("idRefeicao"));  
                    refeicao.setRefeicao(rs.getString("refeicao"));  
                    refeicao.setData(rs.getString("data"));  
                    JCBRefeicao.addItem(refeicao);  
                }  
  
                rs.close();  
                stmt.close();  
  
                return JCBRefeicao;  
  
            } catch (SQLException e) {  
                throw new RuntimeException(e);  
            }  
        }  

[/code]

Rodando um simples código de teste ele retorna o seguinte:

2
FILÉ DE FRANGO GRELHADO
FILÉ DE FRANGO GRELHADO

Segue o código:


    JanelaFuncionalidades jf = new JanelaFuncionalidades();  
    JComboBox<Refeicao> refeicao = new JComboBox<Refeicao>();  
            refeicao = jf.JFCompletaCBRefeicoes("02/10/2012");  
              
            System.out.println(refeicao.getItemCount());  
            System.out.println(refeicao.getItemAt(0));  
            System.out.println(refeicao.getItemAt(1));  

O problema é que possuem dois registros diferentes e não iguais como os “sysos” mostram.

O retorno deveria ser assim:

2
CARNE ORIENTAL
FILÉ DE FRANGO GRELHADO

Alguém consegue me ajudar???

Voce está sobrescrevendo os atributos do objeto refeicao quando ele entra a segunda vez no loop, e usando esse mesmo para adicionar no combo box. Por isso ele mostra o mesmo valor duas vezes. Para cada iteração no rs.next(), crie um objeto novo e salve-o no combobox.