Do banco de dados para sair em JComboBox  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Luca Mollini
Thread.start()
[Avatar]
Membro desde: 29/04/2006 13:57:55
Mensagens: 45
Offline

Gente, estou com um problema que não se resolve, já rodei a Internet inteira e nada de conseguir uma dica. Mas a coisa é fácil, com certeza.

Eu uso um banco de dados Access, que tem uma tabela chamada Produtos, e só tem 4 campos(codigo, nome, quantidade , custo).

No meu aplicativo tem uma JComboBox (CB1), onde eu quero mostrar os valores só do campo "nome". Por exemplo , se lá no meu banco de dados, no campo nome já existem

fogão
geladeira
televisor
batedeira

eu desejo que esses dados apareçam na lista da JComboBox (CB1). É só isso o que eu preciso, mais nada.


Por que é que eu não posso fazer logo isso fixo? Tipo assim:

String [] itens = {"fogão", "geladeira","televisor","batedeira"};
JComboBox CB1 = new JComboBox(itens);

Não posso fazer isto, porque essa lista de itens vai aumentar a cada hora, a cada dia que entrar um novo produto na loja e for incorporado ao banco de dados.

O que eu preciso é apenas de um código que mostre na JComboBox todos os produtos que estão no banco de dados, que mostre o nome deles. Só isso. Deve ser duas ou três linhas de código.

Gente, isso não pode ser difícil, se alguém souber , dá uma ajuda aí.
Luca

'A paciência é a arte de ter esperança."
(Vauvenarques)
antonioni.rocha
JavaGuru
[Avatar]

Membro desde: 07/05/2006 17:09:05
Mensagens: 246
Offline

Digamos que vc tenha um botão em seu form que retorne um ArrayList com os dados do banco. Use o iterator deste ArrayList para inserir os dados no comboBox:
Se for um array de Strings vindo da consulta do banco, faça um laço pra ir adicionando os valores no comboBox.
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Bem, simplificando...


Falow!

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
Luca Mollini
Thread.start()
[Avatar]
Membro desde: 29/04/2006 13:57:55
Mensagens: 45
Offline

Ao Antonioni e David,

Vocês resolveram uma maratona que eu estou há dias, mas ninguém respondia a minha questão, eu fiquei pensando que deveria ser fácil, mas porque não haviam respostas? Agora vocês ajudaram demais. Ainda não coloquei em prática mas vou fazer daqui a pouco.

Mas essa parte do SELECT eu não entendi direito. Sei que é o comando em SQL que vai selecionar os dados do campo nome, mas parece que tem algo mais aí. Dá para esclarecer, David? Eu agradeceria muito.

Luca

'A paciência é a arte de ter esperança."
(Vauvenarques)
Manux
Debugger

Membro desde: 31/03/2006 09:59:28
Mensagens: 61
Offline

Luca Mollini wrote:Ao Antonioni e David,

Vocês resolveram uma maratona que eu estou há dias, mas ninguém respondia a minha questão, eu fiquei pensando que deveria ser fácil, mas porque não haviam respostas? Agora vocês ajudaram demais. Ainda não coloquei em prática mas vou fazer daqui a pouco.

Mas essa parte do SELECT eu não entendi direito. Sei que é o comando em SQL que vai selecionar os dados do campo nome, mas parece que tem algo mais aí. Dá para esclarecer, David? Eu agradeceria muito.

Luca


Como assim? Tipo, vc quer saber qual vai ser a instrução SQL?

A música e a matemática soam em uníssono a harmonia do universo!
[MSN]
Luca Mollini
Thread.start()
[Avatar]
Membro desde: 29/04/2006 13:57:55
Mensagens: 45
Offline

Oi, Manux, obrigado pela ajuda também.

A instrução SELECT eu sei fazer, mas estou um pouco confuso entre o código do Antonioni e o do David, se puder esclarecer, parecem que fazem a mesma coisa por dois caminhos diferentes, ou não? Dá uma clareada aí no código, amigo, agradeço muito..

Abraço,
Luca

'A paciência é a arte de ter esperança."
(Vauvenarques)
camilaoc
Thread.start()
[Avatar]

Membro desde: 10/01/2005 18:56:07
Mensagens: 29
Offline

Para o código do David



Vc utilizará essa lógica se querer preencher o seu combo diretamente a partir do resultado da consulta...que é o objeto ResultSet. Então, dessa forma vc pode ser o seguinte metodo na sua classe:



E o resultSet vem de uma código parecido com este:



Já o do Antônio:



Vc tem no produtoDAO.findAll() uma busca com o resultSet, mas ao invés de vc retorná-lo, vc preeche um ArrayList com os dados do resultSet e retorna o ArrayList. Observe que produtoDAO é uma instância da classe que possui o método findAll():



Espero poder ter ajudado.
[Email] [MSN]
Luca Mollini
Thread.start()
[Avatar]
Membro desde: 29/04/2006 13:57:55
Mensagens: 45
Offline

Olá, Camila,

Quero agradecer sua colaboração, você esclareceu mais ainda as ajudas do Antonioni e do David, muito obrigado, Camila.

Mas está dando um erro, assim:

illegal start of expression
public ArrayList foundAll()

Veja a parte do meu código que faz a conexão, e declara a JComboBox:



Se alguém souber o que estou fazendo de errado e puder me avisar, agradeço.

Tentei fazer assim, Camila, como você falou , mas não sei se era isso, se puder complementar te agradeço.

Abraço,
Luca

'A paciência é a arte de ter esperança."
(Vauvenarques)
Manux
Debugger

Membro desde: 31/03/2006 09:59:28
Mensagens: 61
Offline

E ai Luca,

Cara dá uma olhada nesta parte do código:



Acho que vc queria colocar


Não é? Deve ser por isso que está dando erro...
Espero ter ajudado..
Abraços

A música e a matemática soam em uníssono a harmonia do universo!
[MSN]
Luca Mollini
Thread.start()
[Avatar]
Membro desde: 29/04/2006 13:57:55
Mensagens: 45
Offline

Olá, Manux, tudo bem contigo?

Realmente havia esse erro que você aponta:

list.add(rs2.getString(2));

mas apenas no list , era lista, o outro não, eu estava trabalhando com duas RecordSet, uma rs e uma rs2. mas ainda não é isso o que está gerando o erro, eu consertei essas coisas, mas o erro continua. Mas meu avô dizia, "só vale a pena viver se é para lutar!" Então, tô quebrando a cara nesse troço.

Valeu, Manux, muito obrigado, mais uma vez!

Abraço,
Luca


'A paciência é a arte de ter esperança."
(Vauvenarques)
Manux
Debugger

Membro desde: 31/03/2006 09:59:28
Mensagens: 61
Offline

Opa,

Hum...

Faz assim me manda o seu código pra ver o que eu posso fazer..
Pode ser?

Abraços

A música e a matemática soam em uníssono a harmonia do universo!
[MSN]
Luca Mollini
Thread.start()
[Avatar]
Membro desde: 29/04/2006 13:57:55
Mensagens: 45
Offline

Olá, Manux, ontem que tive que ficar fora de casa, só acessei seu último post agora nesse momento, desculpe ter demorado a responder.

A questão não é um código específico meu. Vamos imaginar um aplicativo para estudo, que só tenha uma JComboBox, mais nada, você clica na setinha dela e vê a lista de nomes de produtos. Só isso resolve meu problema.

Então, para ficar mais claro ainda, a única coisa que eu preciso é uma parte de código que faça uma JComboBox mostrar os valores de um campo chamado produtos. É só isso.

Mas esses nomes não podem estar em um vetor pré-determinado, tipo assim:

String [] lista = {"fogão", "geladeira", "ventilador" "batedeira"};
JComboBox CB1 = new JComboBox(lista);

Isso aí acima não serve, porque essa lista deve ser os registros do campo produtos, lá do banco de dados. Se entrar um produto novo, tem que aparecer na JComboBox.

Então, se alguém fizer um código que só tenha uma JComboBox, que abre na lista dela os dados de um campo produtos do banco de dados, resolve para mim. Não precisa mais nada.

a tabela do banco de dados se chama Produtos;
a Conecction se chama MinhaConexao;
o Statement se chama MeuState;
a ResultSet se chama rs;
o campo do banco de dados se chama produtos;
e a JComboBox que se chama CB1.

Se alguém souber fazer uma classe que só tenha uma JComboBox, nem label, nem textfield, nem button, nada, e essa JComboBox abra a lista dos produtos, vai me ajudar muito, e eu agradeço demais.

Abraço a todos,
Luca

'A paciência é a arte de ter esperança."
(Vauvenarques)
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline


Espero que funcione!

Falow!

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
psyther
HelloWorld
[Avatar]

Membro desde: 16/12/2009 19:26:04
Mensagens: 10
Localização: Patrocínio, MG
Offline

O meu codigo também contem um bug, consigo herdad os nomes da base de dados, mais só depois de selecionar um daquele Items que já vem pre-definidos pelo NetBeans (Item 1, Item 2, ...) e caso eu os excluir na Propriedade/Model do jcombobox, não herda. Mais detalhes no vídeo abaixo:



Segue abaixo os codigos:

Formulario:



Na Classe:





Se alguem puder me dar um help, desde já agradeço!

Boa Noite!!!!
[MSN]
raulsenaferreira
What is classpath?
[Avatar]

Membro desde: 20/10/2010 09:04:56
Mensagens: 8
Offline

amigo pra corrigir isso é simples, coloca o código pra pegar os dados no combobox dentro do seu construtor, assim ele já vai pegar os dados logo ao inicializar a tela, inclusive o problema de não conseguir selecionar o item do combobox tambem vai sumir, abraço.
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team