Como usar JComboBox em banco de dados

Eu uso um banco de dados Access, que tem uma tabela chamada Produtos. Configurei uma fonte de dados que dei o nome de Loja. Veja a parte do código que faz a conexão com o banco de dados:

String url = "jdbc:odbc:Loja";  
          try 
             {
                 Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
                 Connection MinhaConexao = DriverManager.getConnection(url); 
                 MeuState = MinhaConexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
     	            ResultSet.CONCUR_READ_ONLY);
                 rs = MeuState.executeQuery("SELECT * FROM Produtos"); 
                 rs.first();
                 atualizaCampos();
             } 

          catch(ClassNotFoundException ex)
            {
                 System.out.println("Driver JDBC-ODBC não encontrado!");
            }

Quando chama aquele método atualizaCampos(), veja o código que eu fiz:

 public void atualizaCampos()
           {
              try
                 {
                    T1.setText(rs.getString("codigo"));
                    T2.setText(rs.getString("nome"));
                    T3.setText(rs.getString("quantidade"));
                    T4.setText(rs.getString("custo"));
                 }

             catch(SQLException ex)  {  }
          }  

Esse código funciona perfeitamente, isto é, os valores dos campos aparecem nas 4 JTextField. Fiz e roda legal.

Mas eu desejo trocar aquela JTextField (T2) por uma JComboBox (CB2) que foi instanciada assim:

JComboBox CB2 = new JComboBox();

E aí no lugar daquela linha acima

T2.setText(rs.getString(“nome”));

eu tentei assim:

CB2.setText(rs.getString(“nome”));

mas não funciona porque esse método setText() não existe para JComboBox. Como fazer então essa linha de código, substituindo a T2 pela CB2, ou seja, como fazer com que um valor do campo “nome” apareça na CB2 ?

Já estou há dias tentando resolver esse problema. Deve ser muito fácil, mas eu não sei fazer. Se alguém puder me ajudar agradeço.

Luca

Utilize

CB2.addItem(rs.getString("nome"));

Para outros métodos visualize a documentação no site www.java.sun.com

Ao mvsoares,

Cara, agradeço sua tentativa de ajudar, eu mudei o código para isso:

public void atualizaCampos()
            {
               try
                  {
                     T1.setText(rs.getString("codigo"));
                     CB2.addItem(rs.getString("nome"));
                     T3.setText(rs.getString("quantidade"));
                     T4.setText(rs.getString("custo"));
                  }
 
              catch(SQLException ex)  {  }
           }  
 

Mas não funcionou. Será que tem que complementar com alguma outra instrução? Quem puder me dar uma dica, agradeço.

Luca

Só complementando.

O problema está em que para usar o JComboBox, tem que pegar um vetor do tipo:

String [] lista = {“Paulo”, “José”, “Luiz”, “Maria”};

e colocar no instanciamento do JComboBox, assim:

JComboBox CB2 = new JComboBox(lista);

Mas no meu aplicativo eu não posso fazer este vetor assim, prédeterminado, eu tenho que formar o Vetor com os valores do campo “Nome”. Como será que eu posso fazer esse código que instancie um Vetor capturando os values do campo “Nome”? É isso o que está faltando, só essa parte do código. Alguém sabe fazer esse código?

Luca

Existe um construtor onde nada é passado como parametro.

JComboBox CB2 = new JComboBox(); 

Despois basta ir adicionando os itens…

CB2.addItem(algumaString);
CB2.addItem(outraString);
etc
...

Opa…eu uso uma maneira mais fácil…ehehe

coloca apenas:

variavel.getSelectedItem()

oq estiver no JCombobox ira para o banco de dados…

ex correto utilizando Mysql:

st.executeUpdate(“insert into cadusuario values(’”+nome.getText()+"’,’"+[color=red] funcionalidade.getSelectedItem()[/color]+"’,’"+senha.getText()+"’)");

Espero ter ajudado
flw

Hum…agora q li sua msg abaixo…
entao o de cima q enviei eh relacionado com o banco de dados, mas eh como o MVSOARES falou mesmo…

JComboBox CB2 = new JComboBox();
.
.
.
CB2.addItem(“nome”);

caso for com BD , segue exemplo utilizando Mysql:

Statement st=c.createStatement();
st.executeUpdate(“insert into cadusuario values(’”+nome.getText()+"’,’"+CB2.getSelectedItem()+"’,’"+senha.getText()+"’)");
ResultSet rs=st.executeQuery(“select nome from cadusuario where nome=’”+nome.getText()+"’");
if (rs.next())
{
CB2.addItem(nome.getText()); // vc pega direto do JTextField e joga no JComboBox
}

eh um exemplo bem superficial…mas da pra entender…eheh
abraço