Dúvidas de como Implementar um JcomboBox

Boa tarde pessoal,
Sou iniciante em java e estou precisando tirar um dúvida sobre como listar os dados de banco MySQL em um JcomboBox, estou utilizando a IDE Netbeans.

Criei uma classe dao para listar dados em um ArrayLista

[code]public List getListaCombo() throws SQLException{

    String sql = "selecct * from cadastro";
    PreparedStatement stmt = this.conexao.prepareStatement(sql);
    ResultSet rs = stmt.executeQuery();

    List<Cadastro> minhalista = new ArrayList<Cadastro>();

    while (rs.next()){

        Cadastro cad = new Cadastro();
        cad.setNome(rs.getString("nome"));
    }
    rs.close();
    stmt.close();
    return minhalista;
}[/code]

Depois criei uma classe JFrame

[code]List cadastros;
private void CbxCadastroActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
CadastroDao dao = new CadastroDao();
mostraPesquisa(cadastros);
}
private void mostraPesquisa(List cadastros){

    //String[] linha = new String [] {null};
    for (int i = 0; i < cadastros.size(); i++) {
        CbxCadastro.addItem(cadastros.get(i).getNome());
    }
}[/code]

Não está listando nada no combobox,
se alguem poder me ajudar, agradeço…

Teu raciocínio está correto. Voê precisa armazenar o resultado da consulta numa lista, depois precisa passar para a combo? Como vc fez um classe dao, vc precisa então instanciá-la no frame(totalmente contrário ao padrão mvc), para puxar o método que faz a lista. Aí é que vc joga essa lista com while na combo.
Como vc está começando, pode ser que o site:

http://www.tiacademicoweb.xpg.com.br/

te ajude em alguma coisa.

Eu fiz dessa maneira …

private void CbxCadastroActionPerformed(java.awt.event.ActionEvent evt) { CadastroDao dao = new CadastroDao(); try { List<Cadastro> minhalista = dao.getListaCombo(); for (int i = 0; i < minhalista.size(); i++) { CbxCadastro.addItem(minhalista.get(i).getNome()); } } catch (SQLException ex) { JOptionPane.showMessageDialog(null,"Erro no CbxCadastro ! " + ex); } }
Mas está dando esse erro…
[list]run:
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at Dao.CadastroDao.getListaCombo(CadastroDao.java:27)
at Forms.JFCadastro.CbxCadastroActionPerformed(JFCadastro.java:165)
at Forms.JFCadastro.access$000(JFCadastro.java:27)
at Forms.JFCadastro$1.actionPerformed(JFCadastro.java:69)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1240)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:567)
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:603)
at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:816)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3255)
at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:480)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 14 segundos)[/list]

Não consequi listar na combo, se vc puder detalhar mais um pouco, agradeço.

Verifica a tua lista vinda do dao para se certificar que ela não está vindo como null.

O caminho do banco estava errado.
Como é que faço para nao ficar duplicado, cada vez que abre o combo e seleciona um item ele duplica.

é porque vc colocou no actionPerformed o código para dar carga na combo, então a cada clique ele faz uma carga. vc pode carregar a combo logo ao criá-la. Ou limpar a combo antes de carregar.

o ComboBox está inicializando vazio

[code]public List getListaCombo() throws SQLException{

    String sql = "select nome from cadastro";
    PreparedStatement stmt = this.conexao.prepareStatement(sql);
    ResultSet rs = stmt.executeQuery();

    List<Cadastro> minhalista = new ArrayList<Cadastro>();

    while (rs.next()){

        Cadastro cad = new Cadastro();
        cad.setNome(rs.getString("nome"));
        minhalista.add(cad);
    }
    rs.close();
    stmt.close();
    return minhalista;
}[/code]

private void listaCombo() throws SQLException{ CadastroDao dao; try { dao = new CadastroDao(); List<Cadastro> minhalista = dao.getListaCombo(); for (int i = 0; i < minhalista.size(); i++) { CbxCadastro.addItem(minhalista.get(i).getNome()); } CbxCadastro = new JComboBox(); } catch (SQLException ex) { JOptionPane.showMessageDialog(null,"Erro no CbxCadastro ! " + ex); } }

private void CbxCadastroActionPerformed(java.awt.event.ActionEvent evt) { try { listaCombo(); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, "Erro no método listaCombo() !" + ex); } }

Obrigado Gêmeos, resolvi.