ComboBox e JTextfield

5 respostas
L

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.

5 Respostas

fabim

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

L

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

G

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é.

ramilani12

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 -&gt 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 &gt 0)
           {
                     Cliente c = (Cliente) listCliente.get(i);
                     c.toString();
            }

}
mister_m

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.

Criado 8 de maio de 2007
Ultima resposta 14 de mai. de 2007
Respostas 5
Participantes 5