Alimentação ComboBox via banco de dados

2 respostas Resolvido
java
A

Boa tarde Pessoal.

Estou com o seguinte problema e não consigo identificar a raiz do mesmo.

Possuo uma aplicação e a mesma possui uma combobox que carrega alguns itens vindo direto do banco de dados mysql.

A conexão e a consulta funcionam perfeitamente, estou tendo problemas na hora de listar os dados na combo, pois ao listar, ele está pegando o último item da lista e replicando o mesmo iten várias vezes.

A combobox fica do tipo:

casa
casa
casa
casa
casa
Sendo que a mesma possui vários valores diferentes e o último dado é casa

Segue código:

View

private void comboRacaAncestorAdded(javax.swing.event.AncestorEvent evt) {

// TODO add your handling code here:

comboRaca.removeAll();

RacaPersonagemDao racaPersonagemDao = new RacaPersonagemDao();

ListlistaRaca = racaPersonagemDao.listarRacaCombo();
for(RacaPersonagem rp : listaRaca){
        comboRaca.addItem(String.valueOf(rp.getRaca()));
    }
}

Método de consulta dao

public List listarClasseCombo() {

String sql = select * from tb_classe_personagem;

ArrayList listas = new ArrayList<>();

try {

st = con.createStatement();

rs = st.executeQuery(sql);

while(rs.next()){

classePersonagem.setIdClasse(rs.getInt(id_classe));

classePersonagem.setClasse(rs.getString(nome_classe));

listas.add(classePersonagem);

}

} catch (SQLException sqle) {

JOptionPane.showMessageDialog(null, Erro ao efetuar consulta no Banco de >Dados!);

throw new RuntimeException(sqle);

}

return listas;

}

2 Respostas

RoinujNosde

Vc está reutilizando o msm objeto aqui.
Crie um novo dentro do while.

A
Solucao aceita

Nossa RoinujNosde.

Dei um mole enorme…não tinha me atentado para esse detalhe.
Depois do acerto funcionou perfeitamente.

Obrigado pela ajuda.

Criado 24 de março de 2021
Ultima resposta 25 de mar. de 2021
Respostas 2
Participantes 2