Como eu faço para mostrar vários itens (Strings) no meu jComboBox?
Puxo do banco de dados vários registros cadastrados, porém o primeiro registro esta aparecendo. Os outros que veem logo depois não aparece.
Eu a seguinte condição. Oq será q ta de errado? se eu coloco FIRST, tb nao da certo.
DAO
public String idObra;
public boolean result = false;
public boolean selecionaIdObra() throws SQLException
{
String sql = "select * from cad_obras";
PreparedStatement stmt = conexao.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
if (rs.next())
{
result = true;
idObra = rs.getString("id_obra");
}
return result;
}
Form
publicvoidmostrarIdObra(){try{ContratoDaodao=newContratoDao();dao.selecionaIdObra();if(dao.result==true){cbObra.addItem(dao.idObra);}else{JOptionPane.showMessageDialog(this,"Nenhuma obra cadastrada com este nome","Erro",JOptionPane.ERROR_MESSAGE);}}catch(SQLExceptionerro){JOptionPane.showMessageDialog(this,"Erro"+erro);}}
Feito isso percorra essa List populando o seu combo!
evertonsilvagomesjav
Digamos que vc tem uma Class com getters e setters ou um construtor desses objetos que vao vir do banco ai vc pode fazer:
publicvoidbuscarOpcoes(){//abrir conexão e execução da consulta aqui while(rs.next()){intidFunc=rs.getInt("ID_Func");Stringnome=rs.getString("Nome_Funcionario");SuaClasssc=newSuaClass();sc.set(idFunc);sc.set(nome);seuComboBox.add(sc);}
Lembrando que pra isso vc terá que sobreescrever seu método toString na SuaClass.
rafa120
Hmm, isso mesmo.. é a lista
já tinha até o código pronto, mas nao caiu a ficha.
maass, como eu uso DAO, fica um pouco diferente
Ai aparece agora somente um registro ainda, tenho 2 registros e esta aparecendo o segundo.
olha como eu criei a lista, na class DAO
public List<CadContrato> getListaIdObra() throws SQLException
{
String sql = "select * from cad_obras";//"SELECT id_obra from cad_contratos";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
List<CadContrato> minhaLista1 = new ArrayList<CadContrato>();
while (rs.next())
{
idObra = rs.getString("id_obra");
CadContrato c1 = new CadContrato();
c1.setObra(idObra);
minhaLista1.add(c1);
}
rs.close();
stmt.close();
return minhaLista1;
}
O fato de você estar usando dao ou não, não tem nada a ver com o que você está fazendo, que ainda continua errado, você deve usar o retorno (no caso a lista) do teu método que faz a pesquisa, e não esse idObra!
rafa120
este idObra é declarei ele emcima da lista como public para poder aparecer ele no formulário swing!
public String idObra;
mas a minha lista como fiz, nao esta retornando do método?
thiago.correa
Está sim, mas aonde você a está usando?! Pelo que eu vi em lugar nenhum!
rafa120
hmm, menos mal! vou tentar usar entao rs… uma hora da certo
thiago.correa
Cara, para não me chamares de mal e reservar meu lugar no céu aushdaushduashdsa