Tenho um jComboBox, em que os elementos dele são adicionados dessa forma:
public void addItemCombo(Cliente a){
jComboBox1.addItem(a.getNome());
}
ou seja, os item do combo são os nomes dos objetos clientes.
Só que agora eu queria que, ao clicar em um item do combo, por exemplo, Fernando(Cliente), eu populasse alguns textfields com os atributos do objeto Fernando.
Problemas encontrados:
1)Como falei, cada Item do combo, é o nome de um Objeto Cliente, tem como eu fazer o inverso? Através do nome do combo eu buscar o objeto Fernando por exemplo ?
Só quero ter o objeto na minha mão, ai o resto eu me viro.
O meu método que diz que o combobox foi clicado está assim:
//Dentro do ActionPerformed
if(e.getSource()== jComboBox1){
//Aqui deveria pegar qual item que foi clicado, e buscar o Objeto.
System.out.println("####### ");
}
Obrigado desde já pela ajuda, e desculpa pelo tópico confuso, tentei resumir.
Flw galera.
não sei se entendi sua dúvida, mas pelo que entendi você quer que ao clicar no jComboBox ele retorne todos os dados do objeto fernando: exemplo (nome,rg,cpf,etc)?
se for isso você pode fazer da seguinte forma:
1 - crie seu objeto Cliente, que pelo o que eu entendi você ja criou
public class Cliente {
private String nome;
private String cpf;
public Cliente(String nome, String cpf) {
this.nome = nome;
this.cpf = cpf;
}
public String getNome() {
return codigo;
}
public void setNome(String nome) {
this.nome= nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf= cpf;
}
public String toString(){
return this.nome;
}
}
2 - Depois de adicionar seus objetos CLientes no jComboBox faça o seguinte para obter novamente:
//para adicionar
Cliente cli = new Cliente("Fernando","123456")
jComboBox1.addItem(cli);
//com o metodo toString() retornando nome, o JComboBox já mostrará o nome do Cliente
//não use "jComboBox1.addItem(a.getNome());" porque voce perde a referencia ao objeto e adiciona apenas o nome do cliente
//para pegar novamente o objeto
Cliente cli2 = (Cliente)jComboBox1.getSelectedItem();