Opa, welington2502!
Cara, comece a trabalhar com objetos diretamente. Você passa objetos para o componente e recupera objetos!
Para criar a sua JComboBox, faça assim:
List<Bairros> bairros = bairrosDAO.getLista();
jcBairro = new JComboBox(new DefaultComboBoxModel(bairros.toArray()));
E, para recuperar o item selecionado:
Com o objeto em mãos, você tem o ID que você precisa!
[quote=welington2502]Agora me bateu uma confusão rsrs
eu ja achava q estava como objetos no array
[/quote]
Não não, você fez um array de Strings (quando usava o nome do bairro) ou um array de inteiros (quando usava o idBairro).
Você tem um array de objetos como faz da maneira que te mostrei.
Faça o teste: Adicione um Listener na JComboBox e coloque o seguinte código na hora que você mudar o item selecionado:
Object selectedItem = jcBairro.getSelectedItem(); // recupero o item selecionado...
Bairro entidadeBairro = (Bairro) selectedItem; // converto o item selecionado no objeto Bairro...
// e exibo uma informação.
JOptionPane.showMessageDialog(null, String.format("Você selecionou: %s", entidadeBairro.getNome()));
[quote=welington2502]Agora aconteceu outra coisa os itens da combobox sumiram qdo fiz isso:
Nao sei se fiz correto;
sendo que o jcbairro é a jcombobox
[code]
public void preencherComboboxBairro() {
List bairros = bairrosDAO.getListaBairro();
jcBairro = new JComboBox(new DefaultComboBoxModel(bairros.toArray()));
for (Bairros bairro : bairros) {
jcBairro.addItem(bairro.getBairro());
}
}
[/code][/quote]
O código é só esse:
List<Bairros> bairros = bairrosDAO.getListaBairro();
jcBairro = new JComboBox(new DefaultComboBoxModel(bairros.toArray()));
Você instancia a sua JComboBox e passa um modelo pra ela. Esse modelo trata de preenchê-la. Você não precisa daquele foreach teu.
Me desculpe ainda estou meio que perdido; :oops:
esse codigo esta correto?
Note que eu coloquei um print para ver se esta extraindo do banco e esta. funcionando normal essa parte, porém na hora de preencher o o combobox nao esta com o novo codigo.
public List<Bairros> getListaBairro() {
try {
List<Bairros> bairro = new ArrayList<Bairros>();
stmt = con.prepareStatement("select idbairro, bairro from cadastro_bairros order by bairro");
rs = stmt.executeQuery();
while (rs.next()) {
Bairros bairros = new Bairros();
bairros.setIdBairro(rs.getInt("idbairro"));
bairros.setBairro(rs.getString("bairro"));
bairro.add(bairros);
System.out.println("Classe BairrosDAO: " + rs.getInt("idbairro") + " - Bairros: " + rs.getString("bairro"));
}
rs.close();
stmt.close();
return bairro;
} catch (Exception e) {
System.out.println("Erro ao preencher o combobox" + e.getMessage());
}
return getListaBairro();
}
E esse está correto ou seria em outro lugar? pois estou fazendo assim estou colocando o preencherComboboxBairro() dentro do formWindowOpened para iniciar com a tela
public void preencherComboboxBairro() {
List<Bairros> bairros = bairrosDAO.getListaBairro();
jcBairro = new JComboBox(new DefaultComboBoxModel(bairros.toArray()));
}
Coloca isso:List<Bairros> bairros = bairrosDAO.getListaBairro();
jcBairro = new JComboBox(new DefaultComboBoxModel(bairros.toArray()));
No construtor da classe!
ainda nao funcionou.
Já estou ficando sem graça de ficar te incomodando rsrs
Coloquei ele no construtor e nada ainda.
public Cadastro_Clientes() {
List<Bairros> bairros = bairrosDAO.getListaBairro();
jcBairro = new JComboBox(new DefaultComboBoxModel(bairros.toArray()));
setLocation(550, 210);
Tema tema = new Tema();
initComponents();
}
Sim eu uso o netbeans… vejo muita gente reclamando, sou iniciante e fazer o codigo na mão é dificil para quem esta começando, eu tenho o eclipse aqui no meu pc tbm, porem é bem dificil fazer no codigo cru e no netbeans ja tenho um pouco de facilidade pq ja tem muitas coisas, prontas só precisa ajustar o codigo.
agradeço muito a sua paciencia e ajudou sim agora q vc ja deu a dica vou tentar rachar a cabeça
[quote=welington2502]Sim eu uso o netbeans… vejo muita gente reclamando, sou iniciante e fazer o codigo na mão é dificil para quem esta começando, eu tenho o eclipse aqui no meu pc tbm, porem é bem dificil fazer no codigo cru e no netbeans ja tenho um pouco de facilidade pq ja tem muitas coisas, prontas só precisa ajustar o codigo.
agradeço muito a sua paciencia e ajudou sim agora q vc ja deu a dica vou tentar rachar a cabeça
obrigadão.[/quote]
Como você acabou de dizer: você é iniciante. Cara, inicie pelo caminho das pedras. Faça suas interfaces na mão, na unha, na raça ou quaisquer adjetivos que inventaram pra situação. Antes de começar a usar um gerenciador de leiautes, você tem que saber os princípios do mesmo.
Você coloca um layout de grade e joga alguns componentes dentro dele. Você sabe como funciona? E se um dia precisar fazer a mão? Você tem que saber o princípio pra depois usar a facilidade.
Recomendo fortemente que você faça seus formulários na mão para aprender.