Problema preenchendo combo com dados do banco

4 respostas
barbafh3

Pessoal, fiz esse codigo para preencher meu combo com dados da tabela Curso:

public void preencheCombo() {

        // Cria classe de controle para Curso
        CTR_ManterCurso ctrCurso = new CTR_ManterCurso(factory);

        // Busca todas os Cursos e coloca numa lista
        List<Curso> cursos = ctrCurso.listarCursos("nome");

        jComboBoxCurso.removeAllItems();

        // Adiciona no combo
        for (Curso curso : cursos) {
            String aux = curso.getNome();
            jComboBoxCurso.addItem(aux);
        }
    }

Esse eh o codigo do metodo listarCursos:

public List listarCursos(String ordem) throws HibernateException {
        Session session = new HibernateFactory().getSession();
        Criteria criteria = session.createCriteria(Curso.class);
        criteria.addOrder(Order.asc(ordem));
        return criteria.list();
    }

Quando eu abre a janela onde o combo esta, ele fica vazio (e sim, tem cursos armazenados)
n da erro nem nada, simpelsmente n carrega

o q tem de errado?

4 Respostas

danielbchaves

Tenta colocar um modelo na tua combo, tipo um objeto da classe DefaultComboBoxModel

combo.setModel(meuModel);

depois adiciona os teus itens no modelo

String aux = curso.getNome(); meuModel.addElement(aux)

maquiavelbona

Se não estou enganado, você cria o modelo, o preenche e depois manda ao seu componente. Se você, antes de preencher, colocar no componente, pode dar errado.

Até!

danielbchaves

eu criei uma classe que extende a combo para não precisar ficar usando modelo e combo, todos os método que preciso estão dentro dessa classe.
Quando um objeto dela é criado eu coloco um modelo na combo e depois vou colocando os objetos nesse modelo e não tenho tido problemas…

public class Combo<T extends MetodoNome> extends JComboBox
{
	private ModeloCombo<T> modelo = new ModeloCombo<T>();
	
	public Combo()
	{
		super();
		setModel(modelo); //Aqui é setado o modelo
	}
	
	public void adicionar( T obj )
	{
		modelo.adicionar(obj); // depois o cliente vai chamando o método adicionar e a combo vai sendo preenchida
	}

[]s

barbafh3

Obrigado daniel, fiz o q vc falou e deu certim xD

Vlw pessoal

Criado 5 de julho de 2008
Ultima resposta 5 de jul. de 2008
Respostas 4
Participantes 3