[Resolvido] Lista retornando mesmo valores

Então galera eu criei uma list com banco de dados, porém na hora de retornar ela, mostra o ultimo cadastro 3 vezes ( no bd tem 3 horarios cadastrados)

public static void preenchendoCB(){ jCBHorario.removeAllItems(); Controlador c = new Controlador(); List<Horario> lista = c.listarHorarios(); DefaultComboBoxModel defaultComboBox = new DefaultComboBoxModel(); for ( Horario h : lista ) { defaultComboBox.addElement( h.getHorario()); } jCBHorario.setModel(defaultComboBox); }

Controller

[code] public List listarHorarios(){
List horarios = dao.listarHorarios();
return horarios;

}[/code]

DAO

[code] public List listarHorarios(){
ResultSet RS;
Horario h = new Horario();
String select=“select * from horario”;
List horarios = new ArrayList<>();
try {
RS = inserir.Consulta(select);
while(RS.next()){
h.setHorario(RS.getString(“horario”));
horarios.add(h);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
inserir.Exit();
} catch (SQLException ex) {
Logger.getLogger(NovoAgendamento.class.getName()).log(Level.SEVERE, null, ex);
}
JOptionPane.showMessageDialog(null, horarios);
return horarios;

   } [/code]

Coloquei um JOptionPane.showMessageDialog dentro do whilhe(RS.Next()) e mostrou todos os 3 cadastrados…
Porem na parte do view(1 codigo que postei) o comboBox fica preenchido somento com o ultimo horario buscado

Alguem pode me ajudar?

Para quem está com mesmo problema… segue a solução

Como eu tenho que criar uma lista e passar todos os itens para ele, tenho que instanciar o objeto todas as vezes que passar no while(RS.next()) ou seja:

[code] public List listarHorarios(){
ResultSet RS;
String select=“select * from horario”;
List horarios = new ArrayList<>();
try {
RS = inserir.Consulta(select);
while(RS.next()){
Horario h = new Horario();//INSTANCIAR AQUI
h.setHorario(RS.getString(“horario”));
horarios.add(h);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
try {
inserir.Exit();
} catch (SQLException ex) {
Logger.getLogger(NovoAgendamento.class.getName()).log(Level.SEVERE, null, ex);
}
JOptionPane.showMessageDialog(null, horarios);
return horarios;

   } [/code]