Dae! Segue abaixo o código que fiz, mas não estou conseguindo popular minha combobox com os dados do banco. Se alguém puder me ajudar ficarei agradecido.
Desse jeito é ruim, pois vc esta adicionando somente a String, e nao o objeto.
Depois, qqer coisa que vc for fazer ( ex: inserir o codigo ) vc vai te q ir no banco buscar de nvoo
ele passa só a String mesmo, mas qnd eu colocava o objeto ele aparecia algo como Cidade@24f56, como você mesmo descreveu na resposta acima… se eu colocar o objeto, como que ele vai saber que deve mostrar o atributo nome na combo ??
Eu segui os passos passados pelo fabiocsi para preencher um JComboBox. So que ao inves de um banco de dados eu coloquei um ArrayList. Tudo deu certo so que os dados estao aparecendo conforme foi informado Cidade@24f56.
Como eu faço para sobrescrever o metodo toString() no caso de arraylist ou devo fazer algo diferente para me aparecerem os dados desejados ?
Esqueçam a minha pergunta acima, o que eu queria era mais facil do que eu imaginava. Não e necessario sobrescrever o metodo toString(). Basta usar o metodo get do proprio ArrayList. Me senti uma anta mas blz.
Mas surgiu uma outra duvida:
Eu tenho uma classe estado que possui um metodo listar, onde ela adiciona todos os estados do Brasil em um ArrayList.
Eu quero popular um JComboBox com esta classe. Para tal eu fiz o seguinte procedimento
JComboBox cbxEstado = new JComboBox();
listaEstados est = new listaEstados();
for (int i = 0; i < est.lista().size(); i++){
cbxEstado.addItem(est.lista().get(i));
}
Me apareceu o seguinte erro quando tentei executar a aplicacao
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2760)
at java.util.Arrays.copyOf(Arrays.java:2734)
at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
at java.util.ArrayList.add(ArrayList.java:351)
at listaEstados.lista(listaEstados.java:14)
at frmNf.(frmNf.java:36)
at teste.main(teste.java:25)
Ai eu fiquei pensando, e modifiquei o meu for. ao inves de chamar o metodo direto eu o ocoloquei em uma variavel e depois chamei a variavel
JComboBox cbxEstado = new JComboBox();
listaEstados est = new listaEstados();
int j = est.lista().size();
for (int i = 0; i < j; i++){
cbxEstado.addItem(est.lista().get(i));
}
E o negocio deu certo.
Agora o que eu gostaria de saber e porque ele so funciona dessa forma? Eu fiz algo de errado na primeira opção?
“Não estou conseguindo” é um termo muito vago. Está dando alguma exception? A combobox não sai do jeito esperado? O que é?
De qualquer forma, faz o seguinte: eu percebo que tu usa um for para preencher posção por posição a tua combobox. Vê que na documentação da API você pode usar uns contrutores que já preenchem pra você.
Sugestão 1: crie, dentro da classe cujo objeto é retornado pelo método getDao(), um método que retorne um vetor de Strings (ou algo do tipo) - exemplo: public String[] getNomesDosObjetos() - e chame esse método assim:
JComboBox cbCidade = new JComboBox( cid. getDao(). getNomesDosObjetos() ) ;
Sugestão 2: note que você coloca i++ duas vezes no seu for. Isso pode ser a causa do “não conseguir”.