Olá pessoal, meu problema agora é que estou querendo alimentar meu combobox com dados do BD.
Segue o codigo abaixo.
public void carregaCombo() {
jComboBox1.removeAllItems();
try {
bd = new Bd();
bd.conecta();
String sql = "SELECT a.idstress,a.descricao, b.cepa FROM stress a join linhagem b where a.idlinhagem = b.idlinhagem";
pst = bd.conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
int x = rs.getInt("a.idstress");
String y = rs.getString("a.descricao");
String z = rs.getString("b.cepa");
jComboBox1.add(y + " - " + z,x);
}
} catch (Exception e) {
e.printStackTrace();
}
}
eu queria que os items do combo fossem a junção da descrição + cepa, e o index fosse o idstress.
mas o codigo nao funciona, alguem sabe qual o erro ?
Obrigado
no meu uso o método addItem e dá certo
O problema do additem é q ele so permite adicionar o item, vc nao pode setar o valor do indice.
no meu caso quero setar o item e o indice.
porque o combobox por padrao seta item do tipo String
para funcionar da maneira que vc quer, entao tem que criar o seu proprio ComboBoxModel e ListCellRender
http://download.oracle.com/javase/tutorial/uiswing/components/combobox.html
já que você quer jogar tudo em uma combo box pode ser feito assim apesar que não é a melhor prática mais funciona
1º Crie uma classe que guardará os dados do vindo do seu banco por exemplo
[code]public class Teste{
private int id;
private int nome;
//mais atributos aqui
//crie também metodos para acesso get e set
//sobreponha essa método para mostrar os dados na combo
public String toString(){
return id+" - "+nome;
}
}[/code]
busque os dados normalmente agora ao invés de adicionar em uma String crie um novo objeto e os adicione ex
Teste teste = new Teste();
//adicione os dados vindo do banco através dos métodos sets
teste.setId(5);
teste.setNome("nome");
na hora de adicionar na combo box agora adicione o objeto inteiro ex
na hora de pegar o dado escolhido da combo ele irá te retornar um objeto do tipo Teste ai você pode buscar o atributo id dele
flw