Obtendo lista do JComboBox no banco de dados

Olá pessoal,

Sou meio “newbie”, e me surgiu uma dúvida aqui.

Existe uma forma mais fácil de se obter no banco de dados uma lista para um JComboBox?

Eu tive que rebolar pra conseguir essa forma aqui, mas tenho certeza absoluta que deve ter um jeito mais fácil.

Aqui vai a minha solução:

[code]JComboBox testeCB = new JComboBox(getListaComboBox());

private String[] getListaComboPlaca() {
int i = 0, t = 0;
String[] lista;
try {
rs = stmt.executeQuery("select placa from veiculos;");
while (rs.next()) {
++t; // variável apenas para inicializar corretamente o array
}
}
catch(Exception e) {
JOptionPane.showMessageDialog(null, "Erro no banco:\n\n" + e.getMessage());
}
lista = new String[t]; // inicializando o array
try {
rs = stmt.executeQuery("select placa from veiculos;");
while (rs.next()) {
lista[i++] = rs.getString("placa"); // lançando valores pra dentro do array
}
}
catch(Exception e) {
JOptionPane.showMessageDialog(null, "Erro no banco:\n\n" + e.getMessage());
}
return lista;
}[/code]

E aí? O que acharam da minha solução?

E alguém poderia me sugerir a forma correta e mais fácil? Porque eu sei que essa minha está muito “porca” hehehe…

Abraço![/code]

Voce pode usar um Vector no lugar de um array, assim so precisara fazer uma vez.

Ex.: Vector v = new Vector();
while (rs.next())
v.addElement(rs.getString(“campo”));
JComboBox combo = new ComboBox(v);

Se tiver algum erro é na sintaxe, mas a logica é essa.

Wallace

Cria um metodo como esse usando DefaultComboBoxModel

public DefaultComboBoxModel PopularCombo(){ try{ conectar(); cb = new DefaultComboBoxModel(); sql = "SELECT TIPO FROM GENEROS;"; //ORDER BY GENEROS;"; ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); int cont = 0; while (rs.next()){ cb.addElement((String)rs.getString("TIPO")); cont++; } ps.close(); desconectar(); } catch (Exception e){ e.printStackTrace(); } return cb ; }