public List findAll(Class clazz) {
List objects = null;
Session s = HibernateUtility.getSession();
Transaction t = s.beginTransaction();
Query query = s.createQuery("from " + clazz.getName());
objects = query.list();
t.commit();
s.close();
return objects;
}
colocando essa consulta no jButton3_mouseClicked(MouseEvent e) por exemplo funciona corretamente:
DAO dao1 = new DAO();
Entidade entidade1 = new Entidade();
List lista = dao1.findAll (Entidade.class);
for (int i = 0; i < lista.size(); i++)
{
entidade1 = (Entidade) lista.get(i);
System.out.println(entidade1.getNomeE());
}
porém qdo tento fazer essa consulta aparecer no ComboBox, não consigo de forma alguma, criei esse método:
public void combo()
{
DAO dao1 = new DAO();
Entidade entidade1 = new Entidade();
List lista = dao1.findAll (Entidade.class);
for (int i = 0; i < lista.size(); i++)
{
entidade1 = (Entidade) lista.get(i);
System.out.println(entidade1.getNomeE());
}
ArrayList ent;
ent = entidade1.getNomeE(lista.getId());
jComboBox5.removeAllItems();
//adicionando todos os itens do ArrayList ao seu JComboBox
for(int i = 0; i < ent.size(); i++)
jComboBox5.addItem(ent.get(i));
}
porém não estou certo de que esta correto, o certo é q não ta funcionando… Alguém pode me ajudar??
DAO dao1 = new DAO();
Entidade entidade1 = new Entidade();
List lista = dao1.findAll (Entidade.class);
jComboBox5.removeAllItems();
for (int i = 0; i < lista.size(); i++)
{
entidade1 = (Entidade) lista.get(i);
jComboBox5.addItem(entidade1);
}
}[/code]
Primeiro remova todos os itens da JComboBox, depois no proprio for adicione os itens a ele, não precisa criae outra lista pra isso.
No seu codigo voce está adicionado a ent apenas o prmeiro objeto da lista, porque ele esta fora do for.
Depois voce remove todos os itens da JComboBox. Em seguida você faz um for ( de um unico item) e adiciona o (unico) item.
Coloca o codigo acima que deve fucionar!
Ok! Obrigado! sumiram-se os erros…
porém, não estou conseguindo chamar o método…
Dentro do meu JFrame tenho um JPanel e ai os jComboBox’s, por exemplo quero que a consulta apareça no jComboBox5, não seria necessário apenas chamar:
A menos que você esteja “brincando” com Swing, você não quer usar uma abstração tão alto nível como o Hibernate e continuar mexendo com os models, listeners e afins do Swing no braço. Você deve usar um framework de binding, como o genesis, para facilitar o seu trabalho.
Por exemplo, ao invés de fazer algo braçal, você pode popular o combo por simplesmente fazer algo como:
E definindo na sua combobox que propriedades exibir. Mais explicações sobre isso você pode encontrar na documentação do genesis.
Caro mister_m na verdade não estou “brincando” mas estou “ralando”!!! he he!! é que estou vendo essa matéria e ai vou praticando por aki… Estou usando o JDeveloper!!! criei os JComboBox nele, e ai estou tentando povoá-lo com os dados do BD, usando hibernate, porém as vezes fico meio perdido… No meu enteder eu faria o método e o invocaria no JComboBox, não é possível da forma que estou tentando?? ficaria muito complicado??? de qualquer forma, obrigado pela dica da “documentação do genesis” vou estudá-la… se puder ajudar alguma coisa por hora… eu agradeço também!!!
Funciona voce operar direto em cima do JComboBox, mas assim como voce nao vai ficar conectando no banco de dados e rodando JDBC nu e cru em cima dele, nao faz o menor sentido ficar mexendo com listerers, models e afins pra ficar populando um JComboBox ou qualquer componente Swing. Voce deve usar uma solucao + alto nivel pra isso.
Pessoal! por favor… alguém me ajude!! eu sei que preciso estudar… e já que estou usando hibernate… também usar “genesis” por exemplo… mas no momento eu só quero saber uma coisa… se alguém puder me ajudar…
já postei acima os códigos:
public List findAll(Class clazz)
{
também
protected List listar(Class clazz)
{
esse método que o eliasn corrigiu:
public void combo()
{
DAO dao1 = new DAO();
Entidade entidade1 = new Entidade();
List lista = dao1.findAll (Entidade.class);
jComboBox5.removeAllItems();
for (int i = 0; i < lista.size(); i++)
{
entidade1 = (Entidade) lista.get(i);
jComboBox5.addItem(entidade1);
}
}
ai quero que aparece no meu jComboBox5 os dados da tabela “entidade”, porém não esta mostrando nada…