ola
tenho um formulario com um JComboBox com os nomes dos clientes (vindo de um banco de dados), gostaria de saber como faço pra, ao clicar em qualquer opcao do combo, mostrar os dados referentes aos do cliente nos campos desse formulario.
ola
tenho um formulario com um JComboBox com os nomes dos clientes (vindo de um banco de dados), gostaria de saber como faço pra, ao clicar em qualquer opcao do combo, mostrar os dados referentes aos do cliente nos campos desse formulario.
Vc adicionou os clientes na combo como objetos ou como Strings?
se foi com objetos (subscrevendo o toString), pega teu objeto da combo, e seta os atributos dele nos campos no evento ItemStateChanged da combo
meu jcombobox eh ClientePesquisa, nele contem o nome dos clientes, a unica coisa que consegui fazer foi "duplicar" o nome do cliente para o textfield CampoNome...
try{
this.connection = ConexaoOracle.getDBConnection();
stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
query = "SELECT * FROM CLIENTES ORDER BY NOME";
rs = stmt.executeQuery(query);
while (rs.next())
ClientePesquisa.addItem(rs.getString(2));
ClientePesquisa.addItemListener(
new ItemListener(){
public void itemStateChanged( ItemEvent e ){
CampoNome.setText( ClientePesquisa.getSelectedItem().toString() );
}
});
stmt.close();
}catch(Exception e){
e.getMessage();
JOptionPane.showMessageDialog(null, e);
}
como seria pra fazer no codigo?? valeu
Não sei se entendi direito, mas lá vai uma sugestão:
Faz apenas a inserção dos clientes no combo e depois quando os usuários escolher um cliente você faz uma busca no banco e preenche os campos que deseja…
Até.
Aconselho vc a colocar esses clientes em uma Collection
Exemplo:
List listCliente = new ArrayList();
Cliente c = new Cliente();
listCliente.add(c);
Separe a camada de Visualização com Camada de Acesso aos Dados do Banco
De uma lida em MVC -> http://pt.wikipedia.org/wiki/MVC
Agora implemente o metodo actionPerformed da Interface ActionListener para evento do JComboBox ao clicar no JComboBox retorne um indice do Cliente no JComboBox e recupere na Collection , isso evita um novo acesso a base de dados:
Lembra-se que indice sera montando pelo ORDER BY do seu SQL
public void actionPerformed(ActionEvent ae)
{
int i = jComBox.getSelectedIndex() ;
if (i > 0)
{
Cliente c = (Cliente) listCliente.get(i);
c.toString();
}
}
Ou abstraia ainda mais o seu problema e use um framework de binding que permita trabalhar apenas com seu modelo de objetos. O genesis faz justamente isso e possui documentação em português.