Carregar JComboBox com Banco de Dados  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
nando182
Entusiasta Java
[Avatar]

Membro desde: 30/11/2009 01:31:19
Mensagens: 15
Offline


Galera Boa Noite galera, antes de mais nada gostaria de dizer que já escarafunchei o Google, esse site e e outros, vi muita coisa boa a respeito e não consegui exatamente o que queria, pode até ser fácil masi eu empaquei...

Gostaria de pedir por gentileza se alguém ai poderia me ajudar neste pequeno programa, acredito não ser muita coisa mais minha mente tá travada nele q ficaria muito grato se alguém pudesse me salvar.

Objetivo: Fazer um JComboBox Dinâmico, ou seja, fazer a interação dele com o Banco de dados.

(Ferramentas: Eclipse IDE 3.6, Swing, Banco MySql, conecto MySql 5.1 ODBC Driver)

1º Caso: Sincronizar Automaticamente (assim que rodar o programa) o Combobox com todos os itens listados em um determinado campo do Banco (ex ficticio. nome_do_fornecedor), fazendo com que assim q eu abra o programa o Combobox liste todos os nomes que eu tenho, e ao clicar no nome escolhido execute uma query de pesquisa para preencher os demais campos(a query eu faço).

2º Caso (mais complicado): Quase igual ao primeiro porém com uma diferença: através do like (sql) eu irei escolher umas letras ou palavras (ex. "Loj" de Lojas) ai gostaria que tudo o que tivesse "Loj" aparecesse listado no JCombobox, ai qdo eu clicar vai executar uma outra Query Sql que preencheria os demais campos com os demais campos da tabela.
Espero não ter confundido, poderia usar um JTable, na verdade vou prcisar, ma spor hora tem que ser um JComboBox msm.
Deixo aqui o link do programa, todo comentado, e com um código em SQL para a construção do banco.


http://www.2shared.com/file/tjbReI1G/Amaral.html


Agradeço mesmo a força.
nando182
Entusiasta Java
[Avatar]

Membro desde: 30/11/2009 01:31:19
Mensagens: 15
Offline

Se ficar melhor (acreidto que sim tanto para mi quanto para vcs, eu queria fazer ambos os casso em particular tipo um em cada programa, pois axo q se misturar tudo eu me confundirei.


Grato
nando182
Entusiasta Java
[Avatar]

Membro desde: 30/11/2009 01:31:19
Mensagens: 15
Offline

melhorando...
Estava analisando e pensei em uma maneira melhor de fazer,

esta é a construção normal do JComboBox

JComboBox lista; //Aqui cria a variável do JComboBox
String cbfornecedores [] = {"Lojas Digital", "Casas Bahia"}; //aqui cria a variável string com o conteudo do JCombobox
lista = new JComboBox (cbfornecedores); //aqui crio o ComboBox e adiciono o conteudo da variável sbfornecedores nele
lista.setMaximumRowCount(5); // aqui defino o máximo de itens que serão exibidos assim que expandir oJComboBox
lista.setEditable(true); // Deixa-o editável

(...)


O que eu quero é que ao clicar em um determiando Botão execute uma query de pesquisa SQL que jogue os dados
selecionados no JComboBox.

Nicolas Fernandes
GUJ Ranger
[Avatar]

Membro desde: 15/08/2009 10:48:00
Mensagens: 771
Localização: Pouso Alegre (MG)
Offline

nando182 wrote:melhorando...
Estava analisando e pensei em uma maneira melhor de fazer,

esta é a construção normal do JComboBox

JComboBox lista; //Aqui cria a variável do JComboBox
String cbfornecedores [] = {"Lojas Digital", "Casas Bahia"}; //aqui cria a variável string com o conteudo do JCombobox
lista = new JComboBox (cbfornecedores); //aqui crio o ComboBox e adiciono o conteudo da variável sbfornecedores nele
lista.setMaximumRowCount(5); // aqui defino o máximo de itens que serão exibidos assim que expandir oJComboBox
lista.setEditable(true); // Deixa-o editável

(...)


O que eu quero é que ao clicar em um determiando Botão execute uma query de pesquisa SQL que jogue os dados
selecionados no JComboBox.


Fala, Nando, beleza?

1. Aprenda a fazer uma conexão com o banco de dados;
2. Aprenda a manipular os objetos PreparedStatement e ResultSet, os quais serão os responsáveis por realizar a consulta dos dados no seu BD;
3. Com isso, faça uma consulta que retorne uma coleção dos dados que você quer e atribua à combobox em questão:



Abraços!

Está usando DefaultTableModel AINDA??? Pare já com isso!

http://www.guj.com.br/posts/list/15/199067.java#1001295


"Ah, o Sol... O lugar mais quente da Terra!" - Homer Simpson

"Não diga à Deus que você tem um grande problema, diga ao problema que você tem um grande Deus."

"A grandeza de um homem se mede pela verdade, pela humildade, pela sinceridade, pela submissão ao Deus de verdade."
nando182
Entusiasta Java
[Avatar]

Membro desde: 30/11/2009 01:31:19
Mensagens: 15
Offline

Oi amigo,




se vc puder, faça o download do projeto que eu descrevi no primeiro post, tá tudo certinho, já tem até o código do BD com as conexões tudo beleza, tem até uma pesquisa usando o JComboBox.

repito o link


agradeço
nando182
Entusiasta Java
[Avatar]

Membro desde: 30/11/2009 01:31:19
Mensagens: 15
Offline

http://www.2shared.com/file/tjbReI1G/Amaral.html
Nicolas Fernandes
GUJ Ranger
[Avatar]

Membro desde: 15/08/2009 10:48:00
Mensagens: 771
Localização: Pouso Alegre (MG)
Offline

nando182 wrote:1º Caso: Sincronizar Automaticamente (assim que rodar o programa) o Combobox com todos os itens listados em um determinado campo do Banco (ex ficticio. nome_do_fornecedor), fazendo com que assim q eu abra o programa o Combobox liste todos os nomes que eu tenho, e ao clicar no nome escolhido execute uma query de pesquisa para preencher os demais campos(a query eu faço).


É como falei no outro tópico: faça sua classe de persistência retornar uma coleção dos fornecedores e, ao obtê-la, faça da seguinte forma:



nando182 wrote:
2º Caso (mais complicado): Quase igual ao primeiro porém com uma diferença: através do like (sql) eu irei escolher umas letras ou palavras (ex. "Loj" de Lojas) ai gostaria que tudo o que tivesse "Loj" aparecesse listado no JCombobox, ai qdo eu clicar vai executar uma outra Query Sql que preencheria os demais campos com os demais campos da tabela.
Espero não ter confundido, poderia usar um JTable, na verdade vou prcisar, ma spor hora tem que ser um JComboBox msm.
Deixo aqui o link do programa, todo comentado, e com um código em SQL para a construção do banco.


Para autocomplete em JComboBoxes, eu faço uso das Glazed Lists. Talvez seja isso que você precisa, dê uma olhada.

Está usando DefaultTableModel AINDA??? Pare já com isso!

http://www.guj.com.br/posts/list/15/199067.java#1001295


"Ah, o Sol... O lugar mais quente da Terra!" - Homer Simpson

"Não diga à Deus que você tem um grande problema, diga ao problema que você tem um grande Deus."

"A grandeza de um homem se mede pela verdade, pela humildade, pela sinceridade, pela submissão ao Deus de verdade."
nando182
Entusiasta Java
[Avatar]

Membro desde: 30/11/2009 01:31:19
Mensagens: 15
Offline

Consegui o que eu queria! mas falta apenas uma coisa...

usei o seguinte código após a pesquisa (String sql = "select * from tbfornecedor where nomeforn like '%"+lista.getSelectedItem()+"%'"

(...)

lista.addItem(rs.getString("nomeforn")); //lança o resultado da pesquisa sql no JComboBox


O conteúdo do campo nomeforn foi lançado no JComboBox, até ai tudo beleza, bem bonitinho, porém só foi o primeiro, queria que fosse todo o resultado da pesquisa.

Grato
Nicolas Fernandes
GUJ Ranger
[Avatar]

Membro desde: 15/08/2009 10:48:00
Mensagens: 771
Localização: Pouso Alegre (MG)
Offline

nando182 wrote:Consegui o que eu queria! mas falta apenas uma coisa...

usei o seguinte código após a pesquisa (String sql = "select * from tbfornecedor where nomeforn like '%"+lista.getSelectedItem()+"%'"

(...)

lista.addItem(rs.getString("nomeforn")); //lança o resultado da pesquisa sql no JComboBox


O conteúdo do campo nomeforn foi lançado no JComboBox, até ai tudo beleza, bem bonitinho, porém só foi o primeiro, queria que fosse todo o resultado da pesquisa.

Grato


Se eu fosse você, faria as camadas de Visão e Persistência independentes. Dá muito menos dor de cabeça.
Bom, para resolver o problema do jeito que você está fazendo, basta:


Você itera sobre a coleção de linhas que a consulta retornou e adiciona em sua JComboBox.
Você poderia fazer algo do tipo:

1. Crie sua classe de Fornecedor com o método toString() sobrescrito:


2. Crie sua classe de persistência que possua um método que recupere todos os funcionários a partir do nome dado:


E, ao clicar no botão de pesquisar...


Que tal?

Está usando DefaultTableModel AINDA??? Pare já com isso!

http://www.guj.com.br/posts/list/15/199067.java#1001295


"Ah, o Sol... O lugar mais quente da Terra!" - Homer Simpson

"Não diga à Deus que você tem um grande problema, diga ao problema que você tem um grande Deus."

"A grandeza de um homem se mede pela verdade, pela humildade, pela sinceridade, pela submissão ao Deus de verdade."
nando182
Entusiasta Java
[Avatar]

Membro desde: 30/11/2009 01:31:19
Mensagens: 15
Offline

Cara eu agradeço de verdade, em um outro tópico o cara postou algo parecido no mesmo momento que vc e deu certo, conncerteza o seu processo ia dar certo tbm pois é a mesma lógica, eu agradeço a vc e a quem tentou ajudar de alguma forma, muito obrigado msm, pelo esfoço e por gastar seu tempo me auxiliando


Obrigado e o código dá certinho
Nicolas Fernandes
GUJ Ranger
[Avatar]

Membro desde: 15/08/2009 10:48:00
Mensagens: 771
Localização: Pouso Alegre (MG)
Offline

Disponha, e coloque [RESOLVIDO] no título do seu tópico!

Está usando DefaultTableModel AINDA??? Pare já com isso!

http://www.guj.com.br/posts/list/15/199067.java#1001295


"Ah, o Sol... O lugar mais quente da Terra!" - Homer Simpson

"Não diga à Deus que você tem um grande problema, diga ao problema que você tem um grande Deus."

"A grandeza de um homem se mede pela verdade, pela humildade, pela sinceridade, pela submissão ao Deus de verdade."
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team