Popular jComboBox

Pessoal, estou tentando popular o ComboBox, com os dados que vem do Banco de dados. Tenho o seguinte metodo de consulta.

[code]public ArrayList combocurso() throws SQLException{

     ArrayList<Cursos> listar = new ArrayList<>();   

stmt = connection.createStatement();
resultset = null;
try {

      PreparedStatement sql = connection.prepareStatement("SELECT * FROM Cursos");
   resultset = sql.executeQuery();
   while(resultset.next()){
    Cursos curso = new Cursos();
        
        
  	    curso.setCursos(resultset.getString("Cursos"));
        
        listar.add(curso);
 	    
   }
  } catch (SQLException e) {

}

 return listar;

}[/code]
Esse metodo me traz o que eu quero,que é só os Cursos.

A minha dificuldade é em atribuir esse metodo no ComboBox.
Ja tentei de varias formas e nao consegui.
Tem como me darem uma Luz?? :roll:

Por exemplo o que voce quer passar para o Jcombo ? o Array list ou com as opções de curso ?

passa o Arraylist pro JComboBox por exemplo

		

ArrayList&lt;String&gt; mes = new ArrayList&lt;String&gt;();

mes.add(&quot;Janeiro&quot;);
mes.add(&quot;Fevereiro&quot;);
mes.add(&quot;Março&quot;);
mes.add(&quot;Abril&quot;);
mes.add(&quot;Maio&quot;);
mes.add(&quot;Junho&quot;);
mes.add(&quot;Julho&quot;);
mes.add(&quot;Agosto&quot;);
mes.add(&quot;Setembro&quot;);
mes.add(&quot;Outubro&quot;);
mes.add(&quot;Novembro&quot;);
mes.add(&quot;Dezembro&quot;);

for (int x = 0; x &lt; mes.size(); x++) {

} // for para imprimir os items do Array dentro do combobox

JComboBox comboMes = new JComboBox(mes.toArray());// passando o Arraylist para o Combobox


montaDia.add(lMes);
montaDia.add(comboMes);

//montaDia  e meu metodo de montar as datas dos meus JComboBox


return montaDia;
}


}

eu fiz assim ve se ajuda nao sei se e a melhor forma,

mas voce pode jogar todos os cursos que voce tem dentro do
ArrayList<Cursos> listarCursos = new ArrayList<Cursos>();
pegando eles do Banco de dados e adicionar ele ao seu ComboBox

Cara eu ja tenho o Array, que venho com os dados do banco de dados, se eu coloco para imprimir esse Array, aparece o que eu quero.

Mas não estou conseguindo colocar esse array no jComboBox.
Meu metodo ficou assim

[code]public void combo() throws SQLException{
UsuarioDAO dao = new UsuarioDAO();
dao.combocurso();
ArrayList listar = dao.combocurso(); //O Array listar Ja tem Todos Os dados que preciso.

   jComboCurso.addItem(listar);//tentando adicionar o Array no ComboBox

//Chamo esse metodo combo() no metodo principal.[/code]
da o seguinte erro

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at erp.JFCad_turma.jComboCursoActionPerformed(JFCad_turma.java:441) at erp.JFCad_turma.access$100(JFCad_turma.java:22) at erp.JFCad_turma$2.actionPerformed(JFCad_turma.java:135) at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1260) at javax.swing.JComboBox.contentsChanged(JComboBox.java:1331) at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:118) at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:94) at javax.swing.DefaultComboBoxModel.addElement(DefaultComboBoxModel.java:132) at javax.swing.JComboBox.addItem(JComboBox.java:718) at erp.JFCad_turma.combo(JFCad_turma.java:42) at erp.JFCad_turma.<init>(JFCad_turma.java:34) at erp.JFCad_turma$6.run(JFCad_turma.java:505) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:682) at java.awt.EventQueue$3.run(EventQueue.java:680) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:691) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139) at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Faz isso na criação do seu comboBox

JComboBox comboCurso = new JComboBox(listar.toArray());

ai quando seu metodo montaTela, montaCombobox sei la
adicionar o

montaTela.add(comboCurso);
automaticamente o comboCurso ja vai conter o Array dentro dele,

1 curtida

Nao tenho MontaTela, nem MontaComboBox, eu criei ele pelo Swing, visualmente, não por código.
e quando implemento JComboBox comboCurso = new JComboBox(listar.toArray()); no “Personalizar Código” da erro.

ai me pegou rs, da uma olhada nisso , mas como voce nao fez na unha fica meio fod4

da uma olhada no meu projeto no gitHub

fiz tudo na unha entao da pra aprender bem mais

https://github.com/gusthavosouza/swing-jdbc-agenda-java

http://docs.oracle.com/javase/tutorial/uiswing/layout/spring.html

Até apareceu os dados. com o seguinte método:

[code] public void combo() throws SQLException{

       UsuarioDAO dao = new UsuarioDAO();
   
        dao.combocurso();
    
      List<Cursos> listar = dao.combocurso();
      for( Cursos curso: listar ){     
        jComboCurso.addItem( curso );     

}

}[/code]

Mas nao da para escolher as outras opção que aparecem. Ex:Aparece la, item1, item2, item3.
Mas quando clico em Item3, ele nao seleciona, fica aparecendo o item1