Apresentar dados de um BD em JComboBox

7 respostas
T

Pessoal,

Como faço para pegar o conteudo de uma tabela no access e apresentar em um JComboBox?
Se alguem tiver algum exemplo ou a API relacionada eu agradeçeria muito!!

Obrigado!!! :smiley:

7 Respostas

E

procura por JComboBox no fórum que essa semana teve uma discussão legal sobre esse assunto! :smiley:

T

Eu dei uma olhada mas ainda assim fiquei com duvidas, eu consegui resolver usei esse codigo.

public void comboResolvedorRes() {

try

{

//Autenticação do DB

String url = jdbc:odbc:conect;

String usuario = “”;

String senha = “”;
//Chama o drive de comexão JDBC
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

     //Cria a conexão
     Connection con;
     con = DriverManager.getConnection(url,usuario,senha);

     //Método para instrução SQL
     Statement st = con.createStatement();
     ResultSet rs = st.executeQuery("select area from area");

     while(rs.next()){
     jComboBox1.addItem(rs.getString("area"));
     }

     st.close();
     con.close();

     }

     //Tratamento em caso de falha na conexão com DB
     catch (Exception e) {
    // JOptionPane.showMessageDialog(null,"Problemas com o banco de dados!");
     }
      }
D
Olha eu fiz um esta semana e ficou até que legal eu li o conteudo do banco e  ia jogando em um Vectorcaso vc queira que apareça mais de um campo da tabela em uma linha do combo  é  vc concatenar os campos e jogar pro vector depois mandar mostrar no combo

Vou mandar um que eu fiz é bem completo ai vai a classe toda beleza

Ex:

import java.awt.event.<em>;

import javax.swing.</em>;

import java.awt.<em>;

import java.sql.</em>;

import java.util.<em>;

import <a href="http://java.io">java.io</a>.</em>;
public class PesquisaPaciente extends JInternalFrame

{

private JLabel LNome;

private Inicio inic;

private JComboBox Pesq;

Connection con;

Statement st;

ResultSet rs;

int Op;

public PesquisaPaciente(Inicio ini, int Opcao)

{

super(" Pesquisa de Pacientes ",true,true,true,true);
inic = ini;

Op = Opcao;

Container container = getContentPane();

this.getContentPane().setLayout(null);
LNome = new JLabel();

LNome.setText(PESQUISAR PACIENTE);

LNome.setFont(new Font(Times New Roman, Font.BOLD, 19));

LNome.setBounds(130,25,250,20);

this.getContentPane().add(LNome);

Vector vetordados = new Vector();
vetordados = pegadados();

Pesq = new JComboBox(vetordados);

Pesq.setMaximumRowCount(10);

Pesq.setBounds(140,60,200,25);

Pesq.addItemListener(new ItemListener()

{

public void itemStateChanged(ItemEvent event)

{

if( event.getStateChange() == ItemEvent.SELECTED )

{

StringBuffer Item = new StringBuffer(Pesq.getSelectedItem() + “”);

String Codigo = “” + Item.charAt(0) + Item.charAt(1) + Item.charAt(2) + Item.charAt(3);

inic.PesquisaPacienteCombo(Integer.parseInt(Codigo.trim()),Op);

}                                     //Op sendo 0 é para pesquisa

//Op sendo 1 é para alterar

}                                       //Op sendo 2 é para excluir

});

container.add(Pesq);

setSize(520,480);

setLocation(150,30);

}
public Vector pegadados()

{

Vector dados = new Vector();

try

{

con = inic.conexao();

st = con.createStatement();

String sql = (SELECT * FROM PACIENTE);

rs = st.executeQuery( sql );

if (rs.next())

{

do

{

dados.addElement(rs.getInt(CODIGOPACIENTE) + "    " + rs.getString(NOMEPACIENTE));

}while(rs.next());

}

}

catch(Exception ex)

{

JOptionPane.showMessageDialog(null,Erro no banco no método peganobanco);

}

return dados;

}

}

Desculpa ai se mandei muita coisa junta e não só oque interessa mas é que estou sem tempo de ficar recortando… o necessário…
Douglas

T

Ai, obrigado mesmo!!

Me ajudou muito mesmo!!!

D

Beleza se precisar…e que Deus te abençõe…
Douglas

caiofilipini

Douglas, quando for postar algum código, coloque-o dentro das tags e . Assim, fica muito mais legível. :wink:

[]'s

butt-head

Valeu tb! Era o que eu estava precisando, ddpcc.
:smiley:

Criado 18 de setembro de 2003
Ultima resposta 30 de nov. de 2007
Respostas 7
Participantes 5