Boa noite...
Estou com um problema que nao consigo resolver ja li varios post, API mas nao entendi como funciona..
preciso carregar o meu JComboBox com os dados do BD mas nao consigo veja como to entando fazer...
importjava.sql.Connection;importjava.sql.SQLException;importorg.omg.CORBA.PUBLIC_MEMBER;publicclassArrayList{publicstaticvoidArrayList(){//verifica o codigo try{ConexaoMySql.statement=ConexaoMySql.connect.prepareStatement("SELECT Nome FROM professor");intcount=0;while(ConexaoMySql.resultSet.next()){count++;}String[]x=newString[count];ConexaoMySql.resultSet.beforeFirst();inti=0;while(ConexaoMySql.resultSet.next()){x[i]=ConexaoMySql.resultSet.getString("Nome");i++;}}catch(SQLExceptione){System.out.println(e.getMessage());}return;}}
private void ComboSituacao() {
Sit_AgendaJpaController sit_agendajpa = new Sit_AgendaJpaController();
List<Sit_Agenda> lstSitAg = new ArrayList<Sit_Agenda>();
try {
//procura no banco todas as entidades
lstSitAg = sit_agendajpa.findSit_AgendaEntities();
//remove tudo do combo
jCSit.removeAllItems();
//faz o iterator
Iterator<Sit_Agenda> i = lstSitAg.iterator(
while (i.hasNext()) {
//e vai adicionando item por item
jCSit.addItem(i.next());
}
} catch (Exception e) {
}
}
Espero ter ajudado!
viniciusalvess
packagevini.util;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Vector;importjavax.swing.DefaultComboBoxModel;importjavax.swing.JComboBox;publicclassJVComboBoxextendsJComboBox{/** * */privatestaticfinallongserialVersionUID=1L;privateList<Integer>Cods=newArrayList<Integer>();privateStringCampo;publicvoidsetValue(intvalue){for(inti=0;i<Cods.size();i++){if(Cods.get(i)==value){this.setSelectedIndex(i);return;}}this.setSelectedIndex(-1);}publicintgetValue(){intiSel=this.getSelectedIndex();if(iSel>=0&iSel<Cods.size()){returnCods.get(iSel);}return-1;}publicvoidaddValue(intcod,Stringdesc){Cods.add(cod);this.addItem(desc);}publicvoidpreencheLista(Connectionconexao,StringNometabela,Stringcampocod,StringCampodesc){Cods.clear();removeAllItems();Stringselect="select "+campocod+", "+Campodesc+" from "+Nometabela+" order by "+Campodesc;try{PreparedStatementpstm=conexao.prepareStatement(select);ResultSetrs=pstm.executeQuery();while(rs.next()){addValue(rs.getInt(1),rs.getString(2));}pstm.close();rs.close();}catch(SQLExceptione){// TODO Auto-generated catch blocke.printStackTrace();}}publicvoidsetCampo(Stringcampo){Campo=campo;}publicStringgetCampo(){returnCampo;}}
Fiz esse ai , funciona OK !
ViniGodoy
É cheia de péssimas práticas de programação, mas “roda”.
viniciusalvess
pow Viny , da um desconto ai , sou principiantem Java !
mas absorvo sua criticas como complemento para melhorar !
ViniGodoy
Se quiser melhorar, dê uma olhada em como funciona o ComboBoxModel. Você nem sequer vai precisar criar uma subclasse de JComboBox, nem criar aquele List<Integer> ali.
Também evite concatenar Strings em statements. O ideal é que as classes sejam criadas em DAOs específicos, e usando a passagem de parâmetro (com aquelas ?). Isso evita que o programador tenha que conhecer a versão String do banco, evita ataques de SQL Injection e também facilita para inserção de Strings, por causa dos apóstrofes.
Finalmente, mantenha sempre ResultSets, Statements e Conexões fechadas.
Preferencialmente, feche tudo num finally, logando as exceptions adequadamente, se ocorrerem.