Fórum Arraylist Jcombobox #12328
01/12/2009
0
Dyego, segue o código do arraylist para dares uma olhada. Não esquecendo que estou a usar a arquitetura 3 camadas.
Isto está na classe DAO. A ideia é pegar os paises cadastrados no DB e popular o jcombobox.
public ArrayList<Pais> obterListaPaises(){
// lista todos os paises
ArrayList<Pais> listaPaises = new ArrayList<Pais>(); Pais p = null;
Connection conn = Conexao.getConexao();
try{
Statement stmt = conn.createStatement();
String query = "SELECT * FROM paises ORDER BY nome";
ResultSet rs = stmt.executeQuery(query); while(rs.next()){
int idPais = rs.getInt("id");
String nomePais = rs.getString("nome");
String nacionalidadePais = rs.getString("nacionalidade");
p = new Pais(idPais, nomePais, nacionalidadePais);
listaPaises.add(p);
} } catch(SQLException ex){
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
} return listaPaises;
} Na View eu coloquei o seguinte código: Antes da declaração das variaveis public void preencherComboBox(){
// vamos obter a lista de paises já cadastrados
// no sistema e exibÃ-los no JComboBox
for(Pais p: listaPaises){
cmbPaises.addItem(p);
}
} // como saber se o botão salvarBtn foi clicado?
public boolean gravar = false;
public java.util.ArrayList<Pais> listaPaises;
Ja olhei de tras para frente e de frente para trás não consegui ver erro nenhum. Mas não está populando o combobox. Será que tem outra forma??? Desde ja agradeço.
// lista todos os paises
ArrayList<Pais> listaPaises = new ArrayList<Pais>(); Pais p = null;
Connection conn = Conexao.getConexao();
try{
Statement stmt = conn.createStatement();
String query = "SELECT * FROM paises ORDER BY nome";
ResultSet rs = stmt.executeQuery(query); while(rs.next()){
int idPais = rs.getInt("id");
String nomePais = rs.getString("nome");
String nacionalidadePais = rs.getString("nacionalidade");
p = new Pais(idPais, nomePais, nacionalidadePais);
listaPaises.add(p);
} } catch(SQLException ex){
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
} return listaPaises;
} Na View eu coloquei o seguinte código: Antes da declaração das variaveis public void preencherComboBox(){
// vamos obter a lista de paises já cadastrados
// no sistema e exibÃ-los no JComboBox
for(Pais p: listaPaises){
cmbPaises.addItem(p);
}
} // como saber se o botão salvarBtn foi clicado?
public boolean gravar = false;
public java.util.ArrayList<Pais> listaPaises;
Ja olhei de tras para frente e de frente para trás não consegui ver erro nenhum. Mas não está populando o combobox. Será que tem outra forma??? Desde ja agradeço.
Armando Uime
Curtir tópico
+ 0
Responder
Posts
01/12/2009
Henrique Weissmann
Armando,
o seu código está correto. Verifique se não está ocorrendo nenhuma excessão ao fazer a consulta no BD e também se a sequência de execução está correta, isto é, se você de fato está primeiro obtendo a lista de Paises e depois populando o combobox.
Outro ponto importante: o Netbeans costuma vir com o JComboBox já preenchido. Por via das dúvidas, antes de preenche-lo chame o método .removeAllItems() do JComboBox para garantir que ele esteja vazio.
o seu código está correto. Verifique se não está ocorrendo nenhuma excessão ao fazer a consulta no BD e também se a sequência de execução está correta, isto é, se você de fato está primeiro obtendo a lista de Paises e depois populando o combobox.
Outro ponto importante: o Netbeans costuma vir com o JComboBox já preenchido. Por via das dúvidas, antes de preenche-lo chame o método .removeAllItems() do JComboBox para garantir que ele esteja vazio.
Responder
Gostei + 0
22/12/2009
Devmedia
Armando,
por falta de retorno estamos encerrando o chamado. CASO TENHA DÚVIDAS SOBRE O ASSUNTO AQUI TRATADO, BASTA POSTAR A DUVIDA AQUI MESMO QUE O CONSULTOR VOLTARÁ A LHE ATENDER O SERÁ REABERTO.
por falta de retorno estamos encerrando o chamado. CASO TENHA DÚVIDAS SOBRE O ASSUNTO AQUI TRATADO, BASTA POSTAR A DUVIDA AQUI MESMO QUE O CONSULTOR VOLTARÁ A LHE ATENDER O SERÁ REABERTO.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)