Uma arrayList para um JComboBox

7 respostas
A
oi pessoal, estou tendo problemas para colocar um arrayList em um JComboBox. Já criei a classe e ela retorna os valores sem problema, só não estou sabendo como capturá-los no combo. Segue o meu código da combo e do dao.
private void comboSalaActionPerformed(java.awt.event.ActionEvent evt) {
        try {
            Salas sb = new Salas();
            
            int cont=1;
            
            \isso daqui foi um teste sem sucesso ^^
            while(cont < sb.getDadosCombo().size()){
                            
                List<InformacoesSala> valor = sb.getDadosCombo();
                comboSala.add(valor);
            }
            
        } catch (SQLException ex) {
            Logger.getLogger(RemoverSala.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
e tá aqui a função:
public List<InformacoesSala> getDadosCombo() throws SQLException{
		PreparedStatement stmt = this.con.prepareStatement("SELECT cd_nr_sala_rno FROM salareuniao.tbl_inf_salas;");
		ResultSet rs = stmt.executeQuery();

		List<InformacoesSala> Combo = new ArrayList<InformacoesSala>();

		if (rs.next() == false){
			System.out.println("Não existem registros.");
		}

		while (rs.next()){
			InformacoesSala is = new InformacoesSala();
			is.setCod_sala(rs.getString("cd_nr_sala_rno"));

			Combo.add(is);
		}

		rs.close();
		stmt.close();

		return Combo;
	}

um array n pode receber um arrayList?

7 Respostas

A
assim não acusou o erro, mas também não mostrou os valores corretos, somente Item1, Item2, Item3...
private void comboSalaActionPerformed(java.awt.event.ActionEvent evt) {
        try {
            Salas sb = new Salas();
            
            List<InformacoesSala> cb = sb.getDadosCombo();
            for(InformacoesSala is : cb){
                comboSala.removeAllItems();//remover todos os Item1, Item2, Item3...(não funcionou =S)
                comboSala.addItem(is.getCod_sala());//descobri que para adicionar item é addItem xD                
            }

        } catch (SQLException ex) {
            Logger.getLogger(RemoverSala.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

errei de novo:?

A

Agora é outro erro, estou com os Item1, Item2, Item3, Item4 aparecendo, então eu cliquei em um deles, e apareceu 2 salas de 3 =S, essa parada ta doidona… Como eu faço para ele carregar os valores direto?

zoren

Para adicionar os itens ao combo vc tem que pegar o model dele e adicionar os itens ao model

ViniGodoy

É impressão minha, ou você está tentando programar por tentativa e erro? Já tentou ler a documentação?

A

já li a documentação sim hehe, é que o que vou tentando não funcionou, e como já possuo um pouco de conhecimento eu vou procurando e tentando mesmo (sou um tanto afobado ^^)

ViniGodoy

já li a documentação sim hehe, é que o que vou tentando não funcionou, e como já possuo um pouco de conhecimento eu vou procurando e tentando mesmo (sou um tanto afobado ^^)

Pois é, programar por tentativa e erro, além de pouco produtivo, gera código muito porco. Procure ler a documentação, entender como o ComboBox Model funciona, e então fazer a implementação correta.

Acho que já deixei um modelo de ComboBoxModel no GUJ que suporta ArrayLists. Vou ver se acho o link e posto aqui.

A

vlw viny, + não estou fazendo por tentativa e erro, so que os exemplos da documentação não ajudaram, como eu não consegui encontrar por lá, comecei a tentar carregar o combo com os dados do mysql, que aí sim está sendo por tentativa e erro (+/-). Eu fiz a apostila FJ21 da caelum e estou utilizando os conhecimento obtidos de lá. O meu código é bem otimizado.

Criado 18 de fevereiro de 2010
Ultima resposta 18 de fev. de 2010
Respostas 7
Participantes 3