Dados de um banco em combobox [Resolvido]

7 respostas
J

eu queria colocar os dados de uma coluna de uma tabela do meu banco de dados em um combobox… soh que não sei como fazer isso… naum tenhu nem idéia por onde começar… alguém tem alguma sugestão de como fazer isso?

7 Respostas

Matheus_Tardivo

Leia: Introdução ao JDBC.
Depois: How to Use Combo Boxes.
:wink:

J

valeuuu eu vou dar uma lida no artigo do combobox… eh que montar o banco de dados eu sei… ele tah funcinando inserindo… alterando e buscando… soh que a busca até agora eeu soh fiz com 1 item e agora eu to usando um comando SQL que vai trazer varios dados… aii eu não sei como receber esses dados… provavelmente eu imagino q deve ter que usar um array… ou algo do tipo… e eu tb não sei como colocar esse dados no combobox depois… resumindoo naum to sabendo quase ndaaa hauhauhahu mas mesmo assim brigada… :wink:

cleiton_herrmann

olá juniorsm. vc pode fazer da seguinte maneira, declare um objeto global do tipo DefaultListModel na sua classe, sendo que esse ficaria assim:

[color=red]private DefaultListModel modelo;[/color]

e no construtor da sua classe vc deverá inicializar esse objeto e entao setar ele no JComboBox, ficaria ± assim:

[color=red]modelo = new DefaultListModel();
JComboBox.setModel(modelo);[/color]

agora vc deverá ter alguma regra de negocio que irá efetuar a conexao com o seu banco de dados, executar um select na tabela desejada, e adicionar no modelo cada registro retornado, sendo que o modelo é um DefaultListModel e está setado no JComboBox.

[color=red]modelo.add(objeto contendo os dados);[/color]

Seria recomendado usar uma thread para isso, para que o seu sistema nao congelasse enquanto o mesmo executa a regra de negocio que está buscando os dados na base.

Espero ter ajudado, qualquer coisa pergunta ai, se puder eu respondo.

J

para facilitar eu vo postar meu codigo…
eu queria colocar em um combobox oque retornar de buscar_vazio() ou seja oq tiver dento da variavel “idquarto”;

Obs: Vai retornar mais de um dado.

import java.sql.;
import javax.swing.
;

public class constrquarto

{

private String idquarto;

private int lugocup;

private int lug;
public constrquarto(String id,int lo,int l)
{
	idquarto=id;
	lugocup=lo;
	lug=l;	
}
public String getidquarto()
{
 	return idquarto;
}
public int getlugocup()
{
 	return lugocup;
}
public int getlug()
{
 	return lug;
}
public void setidquarto(String id)
{
 	idquarto=id;
}
public void setlugocup(int lo)
{
 	lugocup=lo;
}
public void setlug(int l)
{
 	lug=l;
}
public String inserir_qu()
{
	banco objbanco = new banco();
	//abre conexão
	objbanco.abre_conexao();
	//monta a SQL
	String tabela="quarto";
	String colunas="idquarto,lugocup,lug";
	String dados="'"+idquarto+"',"+lugocup+","+lug+"";
	//manda para classe banco e retorna resultado
	String status = objbanco.inserir_banco(tabela,colunas,dados);
	//fecha conexão
	objbanco.fecha_conexao();
	return status;
}
public String excluir_qu(String procura)
{
	banco objbanco2 = new banco();
	//abre conexão
	objbanco2.abre_conexao();
	//monta a SQL
	String tabela="quarto";
	String colunas="idquarto";
	String dados="'"+procura+"'";
	//manda para a classe banco e retorna o resultado
	String status = objbanco2.excluir_banco(tabela,colunas,dados);
	//fecha a conexão
	objbanco2.fecha_conexao();
	return status;
}
public String alterar_qu(String nval,String val)
{
	banco objbanco3 = new banco();
	//abre conexão
	objbanco3.abre_conexao();
	//monta sql
	String tabela = "quarto";
	String novovalor=""+nval+"";
	String valor=""+val+"";
	//manda para a classe banco e retorna o resultado
	String status= objbanco3.alterar_banco(tabela,novovalor,valor);
	//fecha conexão
	objbanco3.fecha_conexao();
	return status;
}
public void buscar_qu(String val)
{
	//seta o na variavel id
	//setgr(0);
	try
	{
	banco objbanco4= new banco();
	//abre conexão
	objbanco4.abre_conexao();
	//monta sql
	String SQL="SELECT * FROM quarto where idquarto = '"+val+"'";
	//manda pra classe banco a sql
	ResultSet result = objbanco4.mostra_banco(SQL);
	//manda o resultado da pesquisa para as variáveis
	while (result.next())
      {
       	setidquarto(result.getString("idquarto")); 
       	setlugocup(result.getInt("lugocup"));
       	setlug(result.getInt("lug"));
       	
       	
       }
    //fecha banco
    objbanco4.fecha_conexao();
    }
    catch (SQLException e)
	{
	   e.printStackTrace();
	}
    
}
public void buscar_vazio()
{
	
	try
	{
	banco objbanco4= new banco();
	//abre conexão
	objbanco4.abre_conexao();
	//monta sql
	String SQL="SELECT idquarto FROM quarto where lugocup not like "+0+"";
	//manda pra classe banco a sql
	ResultSet result = objbanco4.mostra_banco(SQL);
	//manda o resultado da pesquisa para as variáveis
	while (result.next())
      {
       	 setidquarto(result.getString("idquarto")); 
       	
       	
       }
    //fecha banco
    objbanco4.fecha_conexao();
    }
    catch (SQLException e)
	{
	   e.printStackTrace();
	}
    
}
public void imprimir()
{
 	System.out.println("Nome :"+idquarto);
 	System.out.println("Lugares ocupados :"+lugocup);
 	System.out.println("Lugares"+lug);
 	
}

}

cleiton_herrmann

bom dia juniorsm. eu nao tenho como testar aqui pra ver se funciona mais vou te dar uma ideia que tenho quase certeza que ira funcionar.

Faça o que eu te falei na mensagem anterior, declare um objeto DefaultListModel e set ele no teu JCombobox.

Supondo que vc tenha feito exatamente como eu falei na msgem anterior, vc teria um objeto modelo do tipo DefaultListModel que estaria setado no teu JComboBox.

Entao eu sugiro que no método que verifica se o objeto result tem um proximo registro, após o método setidquarto(result.getString(“idquarto”)); voce coloque o seguinte

[color=red]modelo.add(idquarto);[/color]

onde idquarto é a sua variavel global, que está naquela volta do while, recebendo o valor de result.getString(“idquarto”), através do método setidquarto.

sendo assim, a cada volta do laço, vc atribuirá um registro retornado, ao model do seu combox, que é o objeto modelo.

qualquer coisa pergunta ai, se puder eu respondo. valeu t+

J

conseguir resolver hehehehe mas brigadão mesmoo eu resolvi de um jeito diferente tiver q da uma volta mas consegui eu coloquei todos o retorno do abanco em um vetor e depois fiz um while pra colocar os dados do vetor no combobox… e assim fui retirando item a item os dados do vetor e colocando no combobox… x) eu ateh tentei fazer como vc disse soh q naum entendi direito o funcionamento do DefaultListModel mas obrigado mesmo assim

cleiton_herrmann

perfeitamente juniorms, o DefaultListModel é ± assim ó:

Default = Padrao, List = Lista, Model = Modelo, Modelo padrao de lista, é como se fosse um Vetor ou um Array, onde é possivel adicionar até mesmo imagens com texto ao lado, tipo aquela telinha do msn onde vc escolhe as imagens de exibição, que teim a imagem e o nome dela ao lado em um componente parecido com um JList, e seu funcionamento é bem parecido como o de um vetor ou array.
Então vc adiciona ele em um componente de lista, como o JComboBox e pronto, os itens adicionados serão visíveis em ordem de chegada.
Valeu t+

Criado 8 de junho de 2006
Ultima resposta 12 de jun. de 2006
Respostas 7
Participantes 3