JComboBox + ArrayList + BD

Boa noite…
Estou com um problema que nao consigo resolver ja li varios post, API mas nao entendi como funciona…
preciso carregar o meu JComboBox com os dados do BD mas nao consigo veja como to entando fazer…

import java.sql.Connection;
import java.sql.SQLException;

import org.omg.CORBA.PUBLIC_MEMBER;

public class ArrayList {
	public static void ArrayList(){//verifica o codigo         
			try{  
				ConexaoMySql.statement = ConexaoMySql.connect.prepareStatement("SELECT Nome FROM professor");  
				int count = 0;
				while(ConexaoMySql.resultSet.next()){
					count++;
				}  
				String[] x = new String[count];
				ConexaoMySql.resultSet.beforeFirst();
				int i = 0;
				while(ConexaoMySql.resultSet.next()){
					x[i] = ConexaoMySql.resultSet.getString("Nome");
					i++;
				}  

			}catch(SQLException e){  
				System.out.println(e.getMessage());  
			}  
		return;  
	}  
}

[code]
{
ComboBoxModel cbxProfessorModel = new DefaultComboBoxModel(new String[]{
“Prof01”, “Prof02”, “Prof03”
});

				cbxProfessor = new JComboBox();
				pnDados.add(cbxProfessor);
				cbxProfessor.setModel(cbxProfessorModel);
				cbxProfessor.setBounds(83, 37, 423, 23);
			}

[/code]alguem me ajude pelo amor de DEUS…
[size=24] [color=red]preciso disso com urgencia.
Alguem pode me ajudar[/color] [/size]

Cara eu uso assim os combos:

private void ComboSituacao() { Sit_AgendaJpaController sit_agendajpa = new Sit_AgendaJpaController(); List<Sit_Agenda> lstSitAg = new ArrayList<Sit_Agenda>(); try { //procura no banco todas as entidades lstSitAg = sit_agendajpa.findSit_AgendaEntities(); //remove tudo do combo jCSit.removeAllItems(); //faz o iterator Iterator<Sit_Agenda> i = lstSitAg.iterator( while (i.hasNext()) { //e vai adicionando item por item jCSit.addItem(i.next()); } } catch (Exception e) { } }

Espero ter ajudado! :smiley:

[code]package vini.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Vector;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;

public class JVComboBox extends JComboBox {

/**
 * 
 */
private static final long serialVersionUID = 1L;
private List<Integer> Cods = new ArrayList<Integer>();
private String Campo;

public void setValue(int value) {
	for (int i = 0; i < Cods.size(); i++) {
		if (Cods.get(i) == value) {
			this.setSelectedIndex(i);
			return;
		}
	}				
	this.setSelectedIndex(-1);
}

public int getValue() {
	int iSel = this.getSelectedIndex();
	if (iSel >= 0 & iSel < Cods.size()) {
		return Cods.get(iSel);
	 } 
	
	return -1; 
}

public void addValue(int cod, String desc) {
	Cods.add(cod);
	this.addItem(desc);
}


public void preencheLista(Connection conexao, String Nometabela, String campocod, String Campodesc){
	Cods.clear();
	removeAllItems();

	String select = "select "+campocod+", "+Campodesc+" from " + Nometabela +" order by "+Campodesc;

	try {
		PreparedStatement pstm = conexao.prepareStatement(select);
		ResultSet rs = pstm.executeQuery();
		while(rs.next()){
			addValue(rs.getInt(1), rs.getString(2));
		}
		pstm.close();
		rs.close();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}


public void setCampo(String campo) {
	Campo = campo;
}

public String getCampo() {
	return Campo;
}

}
[/code]

Fiz esse ai , funciona OK !

É cheia de péssimas práticas de programação, mas “roda”.

pow Viny , da um desconto ai , sou principiantem Java !

mas absorvo sua criticas como complemento para melhorar !

Se quiser melhorar, dê uma olhada em como funciona o ComboBoxModel. Você nem sequer vai precisar criar uma subclasse de JComboBox, nem criar aquele List<Integer> ali.

Também evite concatenar Strings em statements. O ideal é que as classes sejam criadas em DAOs específicos, e usando a passagem de parâmetro (com aquelas ?). Isso evita que o programador tenha que conhecer a versão String do banco, evita ataques de SQL Injection e também facilita para inserção de Strings, por causa dos apóstrofes.

Finalmente, mantenha sempre ResultSets, Statements e Conexões fechadas.
Preferencialmente, feche tudo num finally, logando as exceptions adequadamente, se ocorrerem.