Popular Combobox com dados do banco

Preciso que algume me ajude a criar um metodo que preencha uma combobox com os dados da tabela Estado"UF";
Eu ainda não tenho nem uma list…

Alguem tem algum exemplo?

Estou usando Swing

Criar o metodo no dao, passar pelo controle, e passar para view…

Exemplo de consulta:



List<String> strList = new ArrayList<String>();

String query = "SELECT * FROM TABELA WHERE CONDICAO = TAL";

PreparedStatement ps = con.prepareStatement(query);
ResultSet rs = ps.executeQuery();

while(rs.next){

       strList.add(rs.getString("NOME_DA_COLUNA_TAL_LÁ_DO_BANCO"));

   }

 ps.close();

Populando o comboBox com a lista de String:

  //comboBox é meu comboBox, beleza?
 
 DefaultComboBoxModel defaultComboBox = new DefaultComboBoxModel(strList.toArray());
 comboBox.setModel(defaultComboBoxModel);
   

resumindo:
Faça a consulta e armazene os resultados numa lista (exemplo 1).
Depois pegue os resultados da lista, passe para array dentro do combo box model; Abrass

Melhorando:

List<String> strList = new ArrayList<String>();  
   
   String query = "SELECT * FROM TABELA WHERE CONDICAO = ?";  
      

    PreparedStatement ps = con.prepareStatement(query);  
    ps.setString(1, "VALOR");
    ResultSet rs = ps.executeQuery();  
      
    while(rs.next){  
      
          strList.add(rs.getString("NOME_DA_COLUNA_TAL_LÁ_DO_BANCO"));  
     
      }  
     
   ps.close();  

Qualquer coisa dá uma olhada na Apostila FJ-21 da Caelum, bem no comecinho tem a receita de bolo de um DAOzão. Flw!

ve se esta certo

[code]public List Combo() {
List list = new ArrayList();
try{

        Connection conn = Conexao.getConnection();

        String sql = null;
        // sql = "select descricao,data_ocorrencia,servico,placa,nomecliente,nomeveiculo from ocorrencia where idocorrencia=? ";
                sql = "select servico from ocorrencia ";

        PreparedStatement pst = conn.prepareStatement(sql);
     
        ResultSet rs = pst.executeQuery();

while(rs.next()){
Ocorrencia ocorrencia = new Ocorrencia();

Servicos servico = new Servicos();
            servico.setDescricaoServ(rs.getString("servico"));
            ocorrencia.setServicos(servico);

}

pst.close();
rs.close();

    } catch (Exception e) {

        e.printStackTrace();
        JOptionPane.showMessageDialog(null, e.getMessage());

    }

   

        return list;}

[/code]
Aquela outra parque que vc passou seria outro metodo?

DefaultComboBoxModel defaultComboBox = new DefaultComboBoxModel(strList.values()); comboBox.setModel(defaultComboBoxModel);

Aqui só faltou uma coisinha:

while(rs.next()){ 
  Ocorrencia ocorrencia = new Ocorrencia();  
  Servicos servico = new Servicos();  
  //pegando tudo da coluna servico
  servico.setDescricaoServ(rs.getString("servico")); 

  //adiciona o servico a ocorrencia, aqui ok
  ocorrencia.setServicos(servico);   
  //voce deve popular a lista de ocorrencias, ok?
  list.add(ocorrencia);
}

O segredo de Tostines aqui é a lista que você criou. Agora você vai ter que dar um jeito
de pegar essa lista lá no Swing (de preferência coloque no DAO). Lá no Swing você
criou um comboBox, certo? Daí você precisa popular o ComboBox com os valores que você pegou,
e você faz isso setando o “modelo” de seu ComboBox, o DefaultComboBoxModel, com os valores
que você tem na lista.

//Instanciando o DefaultComboBoxModel
DefaultComboBoxModel defaultComboBox = new DefaultComboBoxModel(list.toArray());
//passando os valores do "modelo" pro ComboBox
comboBox.setModel(defaultComboBoxModel);

Tenta aí agora.

Eu só achei uma coisa estranha:
Se você quer mostrar só o resultado da coluna Servico, então esses valores não seriam String, Date, Integer ou
algo do tipo? Se você quiser mostrar um ComboBox só com a descrição do Serviço, então faça assim:



List<String> list = new ArrayList<String>();

String sql = "select servico from ocorrencia";
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = con.executeQuery; 


while(rs.next()){ 
  
  list.add(rs.getString("servico");

}

ps.close();
con.close();

O resto fica igual.

//Instanciando o DefaultComboBoxModel
DefaultComboBoxModel defaultComboBox = new DefaultComboBoxModel(list.toArray());
//passando os valores do "modelo" pro ComboBox
comboBox.setModel(defaultComboBoxModel);

Da maneira que tava antes, quando desse um “list.toArray()” iria criar um comboBox de instâncias, daí o resultado não vai ser muito agradável pra você.
Se você quiser vários ComboBox, um com cada atributo do servico, você teria que criar uma lista e ir pegando os valores separadamente. Exemplo:


List<String> descricaoList = new ArrayList<String>();
List<Integer> servicoIdList = new ArrayList<Integer>();

//considere list uma Lista de Servicos
for(Servico servico: list){
    
    descricaoList.add(servico.getDescricao());
    servicoIdList.add(servico.getId());
}

//daí você poderia ter dois comboBox, um de descricao, outro com descricao
private javax.swing.JComboBox cbServicoDescricao;
private javax.swing.JComboBox cbServicoId;

DefaultComboBoxModel defaultComboBox = new DefaultComboBoxModel(descricaoList.toArray());
cbServicoDescricao.setModel(defaultComboBox);

defaultComboBox = new DefaultComboBoxModel(servicoIdList.toArray());
cbServicoId.setModel(defaultComboBox);

BLz arrumei… a lista esta la no dao

[code] private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultComboBoxModel defaultComboBox = new DefaultComboBoxModel(list.getValues());

//passando os valores do “modelo” pro ComboBox

jComboBox1.setModel(defaultComboBoxModel);
}[/code]

Mas na primeira linha ele ja da erro no list…

Dá uma olhada no meu último post. Eu não vi, mas criar um comboBox de Servico nao vai virar. Tem que ser uma lista de atributos do servico.

[quote]

[code]

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {

DefaultComboBoxModel defaultComboBox = new DefaultComboBoxModel(list.toArray());

//passando os valores do “modelo” pro ComboBox

jComboBox1.setModel(defaultComboBoxModel);

} [/code][/quote]

Troque list.getValues por list.toArray(); Eu escrevi getValues, mas foi a força do hábito. Faça do jeito que eu disse e dê um list.toArray();

a visão não reconhece o list

Tem como você colar a mensagem de erro pra eu dar uma olhada? Posta a mensagem de erro e a maneira como você tah pegando a a lista e populando o ComboBox.

Mas, só pra você ter uma idéia do que tem que ser feito, faca o seguinte:

1- Crie um novo projeto no NetBeans
2 - Crie um Frame
3 - Coloque um botão e um comboBox no formulário que você criou
4 - Agora dê um dois cliques em cima do botão que você criou e adicione o seguinte código ao botão:

List<String> list = new ArrayList<String>();
list.add("Valor um");
list.add("Valor dois");
list.add("Valor três");

DefaultComboBoxModel defaultComboModel = new DefaultComboBoxModel(list.toArray());
//seuComboBox é o comboBox que você criou
seuComboBox.setModel(defaultComboModel);

Isso vai preencher o seu Combo Box. Daí dá pra ter uma idéia mais clara do que deve ser feito. Faça o exemplo e depois poste a mensagem de erro aqui. Flw!!!

Consegui fazer cara… obrigado

Aew!!! Uhu! Então fechou. Qualquer coisa estamos aí. Abrass.

Então cara… consegui retorna os dados la na combo… agora vc manja com inserir esses dados no banco?

Fala rapaz, tudo beleza? Desculpa a demora em responder, mas acabei nem vindo ao GUJ.
Bom, se você quiser pegar a opcao que esta selecionada no comboBox, eh soh vc usar o
getSelectedIndex();

exemplo:


//vamos supor que seu combo box tem 3 dados:
//o primeiro fica na posicao 0
//o segundo fica na posicao 1, e assim por diante:
//pegando o primeiro item do comboBox

comboBox.getSelectedItem(0);

Pronto, daí você atribui o valor do combo Box a variável de retorno esperado. Abraço.

mais isso eu faço onde?
da uma olhandinha no meu post.

eu tenho um outro post… se vc puder dar uma olhada…

http://www.guj.com.br/posts/list/142404.java

obrigado

eu tenho um outro post… se vc puder dar uma olhada…

http://www.guj.com.br/posts/list/142404.java

obrigado

eu tenho um outro post… se vc puder dar uma olhada…

http://www.guj.com.br/posts/list/142404.java

obrigado

ve tbm esse post… se vc conseguir
http://www.guj.com.br/posts/list/142404.java