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
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);
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);
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!!!
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.